Implements group_by, projection and offset on datastore Query.

In addition, `__eq__` was implemented on datastore.key.Key to allow for easy comparison.

See #281 for some context. As mentioned there, I looked and didn't see any equivalent bugs for these features.
Should this use the projection's 'ClearField'?