Fix #313:  Add Key properties

Builds on #347, and presumes it is already merged:  only 0e6c5bd, 89e31be, and a7b997b are unique to this branch.

Notes:

- Some `Key` properties (e.g., `etag`, `owner`) have the same name and one-liner implementation as those in `Bucket`:  this PR keeps them separate because their docstrings differ (they contain URLs pointing to the relevant API spec documents).
- `metadata` is restored (for `Key` only) as the spec uses it:  a mapping of arbitrary, application specific data.

See #313.
The thought also occurred to me and I think that is happening in the `gcloud-node` side, maybe @silvolu can comment.

I filed #351 so we can follow up with it outside this PR.