#260: break datastore cycles via factories

My take on breaking the import cycles in 'gcloud.datastore' by adding a "factory registry" for the classes normally imported.

Note that some classes have more than one factory (class methods like'from_protobuf' and 'from_path'):  each is registered under a separate name.

Also drops 'Dataset.query' and 'Dataset.entity' convenience APIs, pointing instead to constructing Query and Entity directly.

Addresses #260 (for 'gcloud.datastore').
I think the fact that `Key_pb` isn't an actual name makes this hard to follow.

Why not just `_FACTORIES.get('Key').from_protobuf` or even `_FACTORIES.get('Key.from_protobuf')`?