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 really don't see much point in this mix-in:  the 'make_public()' implementation isn't really the same between `Bucket` and `Key`, which leaves `get_acl()` as the only re-used method.  I would actually like to get rid of `get_acl()` altogether, and instead have the `ACL` objects handle the "lazy-loading" bits themselves.