Issue #18 has laid the groundwork for this feature by allowing any counter to specify its own indexing choices. To finish this feature, we need to add method to CounterService to return a pagable list of all counters, with options for sorting and filtering.
In addition, this feature needs to add methods to allow finding counters by CounterGroup. See issue #6 for more details.
The counter group information, while present in the datastore, is not currently bing updated. As part of completing this issue, we'll want to update the eventually consistent count of a counter in the CounterGroup entity. To do this, we can async-shedule a task to increment the CounterGroup data at a later point in time. We'll want to accumulate these for high-traffic counters, so consider using the "one scheduled ticket" pattern either using a named task or by using the toolset used by UpSwell.