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`.
I see. We should continue this conversation on those issues.

ISTM a `projection` onto the mutable keys would be useful.