Prototype of CDTDatastoreFromQuery

Test case shows how to create a CDTDatastoreFromQuery object and push/pull on it.

Deriving the list of Doc IDs is currently mocked with a fixed list of IDs but this can be replaced with a real implementation once the query work is complete.

Similarly, automatic naming of the database based on the query is not yet present but this is anticipated to be some sort of stable hash based on the query (the same query gets the same name each time).
Is this to allow the purge to run? If so, note that.