Rename datastore._helpers -> helpers.

We are going to move 'Entity.from_protobuf' and 'Key.from_protobuf' into
the module as free functions, which will be APIs:  this module needs not
to signal that it has no APIs.

Document now-API module 'gcloud.datastore.helpers'.
Fix #260: remove import cycles in datastore.

'entity.Entity.from_protobuf' classmethod -> 'helpers.entity_from_protobuf'.

'key.Key.from_protobuf' classmethod -> 'helpers.key_from_protobuf'.
Enforce cycle checking.
Update 'gcloud.datastore.helpers' to indicate API-ness.

Correct docstring.

Add '__all__' to indicate public members.
Use longer name for list-comprehension placeholder.

Incorporate feedback from @dhermes.
Merge pull request #289 from tseaver/260-break_datastore_cycles_move_from_protobuf

Fix #260: break datastore cycles by moving 'from_protobuf' classmethods
Only using 'id' OR 'name' from pb path in datastore.Entity.save.

This was introduced in #289 and discovered while rebasing those
changes into #281.

The datastore backend fails if both 'id' and 'name' are set on
a key, so this only copies the parts of the saved pb key that
are actually set.
Merge pull request #291 from dhermes/fix-key-error-in-entity-save

Only using 'id' OR 'name' from pb path in datastore.Entity.save.
Only using explicit namespace when deserializing key pb.

This issue surfaced during review for #282.
Adding checks for namespace in datastore helpers test.

This is to ensure that values are correctly ignored when
the field isn't set on the protobuf.
Merge pull request #292 from dhermes/unmarshall-key-namespace

Only using explicit namespace when deserializing key pb.