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.
Implements group_by, projection and offset on datastore Query.

In addition, __eq__ was implemented on datastore.key.Key
to allow for easy comparison.
Addressing corner cases for datastore.Key.__eq__.

These corners are a direct result of #274.
Remove notes about datetime.date objects and timezone matching.

Issues #278 and #279 have been filed to address.
Document regression tests, make run_regression fail if environ not set.
Adding support for queries in regression test.

This is an attempt port the gcloud-node regression tests
for queries over to gcloud-python.
Makes entities for query tests persist to avoid flakiness.

This came about from conversations with @silvolu and
@pcostell. Unfortunately, even if an entity has been stored
and indexes built for 10+ minutes, the tests

- test_query_simple_filter
- test_query_multiple_filters

are still flaky.
Using ancestor queries for strong consistency.

Integrates changes from GoogleCloudPlatform/gcloud-node#267