Add Bucket.copy_key impl from PR #99, with tests.

Hand apply / fix up patch from gsalgado's un-mergeable commit:
https://github.com/gsalgado/gcloud-python/commit/1c80d618f265c01ac01a794b5af12f03a6438fb1.
Add Key.rename from PR #99, with test.

Manually applies patch from gsalgado:
https://github.com/gsalgado/gcloud-python/commit/1c80d618f265c01ac01a794b5af12f03a6438fb1

But changes semantics to return the new key instance, leaving the original
key unchanged.
Ensure that Key.rename actually deletes old key as documents.

Incorporate feedback from @dhermes.
Merge pull request #224 from tseaver/pr_99-gsalgado-master

Rebase PR #99 and fix up