Expose Columns and QueryFilters in Query 

Allows non SQL implementations of the DataStore to also use the same interface object.

In preparation for an InMemory Writable Datastore that can be populated using FakeDataProducers.