Make KeyError from 'get_metadata' more flexible.

Allow subclasses to define a 'CUSTOM_METADATA_FIELDS' mapping which
maps field name -> accessor name, and use it to generate more meaningful
error message when raising KeyError for those fields.
Merge pull request #339 from tseaver/get_metadata-map_accessors

Make KeyError from 'get_metadata' more flexible.
Adding extra parameters for querying Cloud Storage keys.
Testing interaction with page token and extra params in iterator.

Also making sure tests pass by using the `upload_` prefix
instead of the `set_contents_` prefix.
Using {} as default in iterator for extra_params and get_query_params.
Updating docstring in Iterator.get_query_params.