Make 'tox -e docs' rebulid docs from scratch.

Avoid make-like optimizations which can get out of sync after git operations.
Don't copy key's datset ID to the protobuf.

The back-end already knows it, and it is actually different than the
'project ID' we are assigning to the dataset as its ID.

Fixes #121.
Remove direct 'Key' -> 'Dataset' relationship.

Replace it with an (optional) '_dataset_id' attribute, which is None for
newly-created keys, or the more-or-less opaque value set by the backend
for keys fetched from it.

Add direct 'Entity' -> 'Dataset' relationship (rather than indirecting
through the entity's key.

Addresses @pcostell's remarks on #259:

https://github.com/GoogleCloudPlatform/gcloud-python/pull/259#issuecomment-59971468
Merge pull request #276 from tseaver/121-dont_copy_key_datasetid_to_pb

Fix #121: don't copy project ID to the Key protobuf's dataset_id.
Merge pull request #283 from tseaver/tox_rebuild_docs_from_scratch

Make 'tox -e docs' rebulid docs from scratch.
Add key for funtional testing
Science fiction for expense report example application.
Update science-fiction CLI.
Initial CLI skeleton to support datastore narrative example.
PEP8
Suppress two useless PEP8 errors.

- E124: closing bracket does not match visual indentation.

- E127: continuation line over-indented for visual indent.

They are over-opinionated, and without sufficient justification from the PEP.
Progress toward sample implementation.
Get exp report creation actually working.
Use same Oauth envvars as regression tests.
Enforce distinction between creating / updating expense reports.
Add 'delete' command.
Add checks for valid report status to update / delete commands.
Record metadata (description, created, updated) for expense reports.
Make 'review_expenses list' work with live data.
Make 'review_expenses show' work with live data.