#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 don't see any point making '_query_factory' have a non-raising codepath.  Do you mean that I should be calling it here (presumably to raise the custom exception rather than a KeyError)?