Adding pylintrc config and custom runner and making it pass.

Some key things to notice:
- The tools (pep8 / pylint) disagree about continutation lines.
  This is because PEP8 is ambiguous about "multi-line constructs".
  One of the examples for bracket indentation in the PEP is

      my_list = [
          1, 2, 3,
          4, 5, 6,
          ]

  but the PEP doesn't explicity say whether or not

      my_list = [1, 2, 3,
                 4, 5, 6,
                 ]

  would be allowed. As it turns out, pep8 (the tool) considers
  the latter to be a continuation while pylint does not.
- I changed all indentation where this was a problem and went
  with the preferred form

      my_list = [
          1, 2, 3,
          4, 5, 6,
      ]

- I made a _MetadataMixin helper class for methods shared between
  storage.Bucket and storage.Key. I did not refactor the affected
  tests but they do still give 100% coverage.
- I increased the maximum number of arguments from 5 to 10 and
  the maximum public methods from 20 to 30. Offenders were:
    - storage.connection.Connection.make_request (6 arguments)
    - storage.connection.Connection.api_request (9 arguments)
    - storage.connection.Connection.generate_signed_url (6 arguments)
    - storage.bucket.Bucket (27 public methods) and
    - storage.key.Key (23 public methods)
  I think refactoring these should be considered (though is not
  mandatory). I certainly don't know a good solution for the class
  public methods.
Addressing feedback in review for main pylint changes.

- Reverting refactoring changes of code re-use between
  storage.Key and storage.Bucket. These will be committed
  in a separate PR.
- Turning off the `no-self-use` warning for test code and
  reverting all the copious `@staticmethod` decorations in
  test and demo code.
- Removing a refactroing note about storage.bucket.Bucket.from_dict
  from the code.
- Fixing indent on a module attribute docstring in storage.key.Key
- Updating note in pylintrc files to make the intent more
  clear.
Merge pull request #238 from dhermes/large-style-changes

Large number of style-related changes to pass pylint
Support marshalling lists to value_pb.list_value.

Closes #223.  (again).
Merge pull request #265 from tseaver/223-marshal_list_values

Finish #223:  Support marshalling lists to 'value_pb.list_value'
Make '_get_protobuf_attribute_and_value' rigorous about bytes vs. text.
Make '_get_value_from_value_pb' rigorous about bytes vs. text.
Add notes to docstrings about 'text' vs. 'bytes' semantics.

Addresses #233.