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.
Thanks for pushing back on this. I was caught off guard by the fact that a query could have more than one kind.

I just tested this:
https://gist.github.com/dhermes/a7e003fcc28f98e51317
It turns out that the backend rejects queries that are repeated so the spec is a little misleading.

In addition, I compared `Query.kind()` to the constructor for `Dataset.query()` and found they somewhat disagree:
https://gist.github.com/dhermes/e1183ce0e01c622a699c

I think the right answer is to fix `Query.kind()` so that it takes only a single string.