Refactoring duplicate code between storage.key and storage.bucket.

@tseaver We discussed this waaaay back in #238.

Let me know how much of the tests you want me to move from `Bucket` / `Key` specific stuff into `test__helpers`.