Split DataCoordinatorClient into a trait with an implementation for Http

The idea is to add caching in getSchema via a wrapper that also implements
the trait.

Also drop the schemaHash parameter; this should be handled internally
Similarly, trait out the QueryCoordinatorClient