Add an 'IndexedBy' operator which can be used to create queries that can be broken down by an index value
Allow map/reduce keys to contain a 'index' element that always appears at the the start. This will let us retrieve all the values starting with a particular key (needed for implementing user breakdown and other indexing operations)
Suppress some async warnings
Add tests for serializing the indexed by query type
Get serialization of IndexedBy working
First indexing test: should work identically to a query without indexing if we aren't accessing the value
Add the indexing map/reduce operation (should generate queryable map/reduce results)
This bit of dead code has been replaced with behaviour supported by the composable query
Hm, copying keys from the reductions is now redundant, I think. The way that chain queries work is different now we have the composition system.
Add a test for unreducing when IndexedBy is used (should be able to delete documents)
Hm, CountUnique also lacks a test for unreduction. Add one.

It's broken :-(
When committing unreduce actions, pass them on to the chain ingestor
Add an API call for running indexed queries
Add a test for breaking down the indexed queries (we're reading directly here so this doesn't test the new API)
Add a test for the indexing API call
IndexedBy doesn't really need an output name
Implement the indexed query API. Hm, I think the way that IndexedBy is implemented means this doesn't work for multiple indexes.
The way IndexedBy composes with itself isn't currently very useful. Add a note to the docs to say you're not supposed to do this.
Add a way to access an indexed key via the run-query request

(Also, set the basic endpoint to use development storage by default)
Tidy comments