Fix #133:  preserve PB namespace in Key.from_protobuf.
Fix #134:  enforce contract that *args must be pairs.
Propose a contract for Key.parent.
Fix #135:  enforce contract for Key.parent().
Merge branch 'add_key_docstrings' into 133-key.from_protobuf-preserve-namespace
Merge branch 'add_key_docstrings' into 134-key-from_path-contract
Merge branch 'add_key_docstrings' into 135-key-parent-contract
Incorporate feedback from @dhermes.
Merge branch 'add_key_docstrings' into 135-key-parent-contract
Fix #137:  default key based on filename.

When no key is passed, guess it based on the basename of filename.
Fix #138:  clear existing (local) ACL when saving ACL to server.
Added bucket method to upload files from a file object.
Fix #139:  clear existing (local) ACL when saving defaultObjectACL to server.
Fix #140:  make 'path' required for Connection.api_request.
Fix #143: off-by-one range in iterator.KeyIterator.get_headers.
Merge pull request #145 from kleyow/files

Added bucket method to upload files from a file object.
Merge pull request #191 from tseaver/137-upload_file-guess_key_based_on_filename

Fix #137:  default key based on filename.
Merge pull request #192 from tseaver/138-save_acl-clear_existing_local_acl

Fix #138: clear existing (local) ACL when saving ACL to server.
Merge pull request #193 from tseaver/139-save_default_object_acl-clear_existing_local_acl

Fix #139: clear existing (local) ACL when saving defaultObjectACL to server
Merge pull request #194 from tseaver/140-connection.api_request-handle_path_none

Fix #140: make 'path' required for Connection.api_request.