Implementing storage regression tests to match gcloud-node.

Not meant to be merged. Some missing features were
uncovered or hard to use APIs and I want to discuss here
and then map out the plan (i.e. how to break this up).
Sorry, I wrote this before #320, will update.

RE: returning `self`, I was under the impression that there was no other way to determine the key of an uploaded object, but now I see the filename is used. 

I can change the calling code in `TestStorageWriteFiles.test_write_metadata`, `TestStorageWriteFiles.test_copy_existing_file` and `TestStorageListFiles.setUpClass` to just pass an explicit `Key` object. WDYT?