Expose 'missing'/'deferred' in 'Connection.lookup'/'Dataset.get_entities'.

If 'deferred' list is not passed, the connection retries any keys in
a deferred response.

Closes #306.
Changing Query.filter to ask for operator and prop. name separately.

Also adding a test for property names with spaces in them.

Fixes #424.
Remove note about sleep.

@pcostell says not to bother.
Move copy-deferred-keys-to-request logic out of 'Connection.lookup'.

Addresses @dhermes comment:
https://github.com/GoogleCloudPlatform/gcloud-python/pull/429/files#r21997643
Squash checks of protobuf call headers into helper method.

Addresses @dhermes comments:
https://github.com/GoogleCloudPlatform/gcloud-python/pull/429/files#r21998236
https://github.com/GoogleCloudPlatform/gcloud-python/pull/429/files#r21998714
Document that / lists passed as arguments must be empty.
Merge pull request #430 from dhermes/fix-424

Changing Query.filter to ask for operator and prop. name separately.
Enforce that / lists passed as arguments must be empty.
Dead chickens on the altar of pylint/pep8 continuation taboos.
Merge pull request #429 from tseaver/306-connection_lookup_missing_deferred

Expose 'missing'/'deferred' in 'Connection.lookup'/'Dataset.get_entities'
Removing cursor and more results from query object.

This is a follow up to a discussion in #423 and #425.

Also
- Adding fetch_page() method to return the needed properties
  no longer available on the Query object.
- Made fetch_page() fail if more_results is `NOT_FINISHED`, which
  seems to be intended for batched requests.
- Added start_cursor and end_cursor properties to Query.
- Updated docstrings to reflect change
- Updated tests to ensure the returned cursor was always set.
- Streamlined fetch()/fetch_page() tests to run via a single
  tweakable helper.
- Updated a datastore.connection test to construct and return an
  initialized QueryResultBatch to simulate a valid cursor.
- Updated regression.clear_datastore and regression.datastore to
  reflect changed API surface.