100% branch coverage for gcloud.datastore.helpers.

Surfaced bug w/ unknown type passed to get_protobuf_attribute_and_value().
Toward 100% branch coverage for gcloud.datastore.key.

Surfaced bug w/ path element holding both id and name in Key.from_protobuf.
Toward 100% branch coverage for gcloud.datastore.key.

Cover edge condition in Key.to_protobuf where dataset has empty ID.
Toward 100% branch coverage for gcloud.datastore.key.

Cover edge conditions in Key.to_protobuf where path elements are missing keys.
100% branch coverage for gcloud.datastore.key.

Cover edge conditions in Key.{kind,id,name} where path is empty.
100% branch coverage for gcloud.datastore.query.

Edge cases in Query.ancestor w/ existing non-ancestor filters.
100% branch coverage for gcloud.datastore.test_key.

Don't worry about path elem w/o kind.
100% branch coverage for gcloud.storage.acl.

Edge case in ACL.__iter__ for empty role.
100% branch coverage for gcloud.storage.connection.

Exercise Connection.delete_bucket w/ 'force' passed as False.
Don't derive from object w/o need.

Incorporate feedback from @dhermes.
Appease pylint E261.
Remove install-time requirements from 'setup_requires'.

That field is used for stuff needed at packaging time, but causes eggs
to be downloaded and installed in the project directory, which is
undesirable.
Add note to 'name' branch in Key.from_protobuf.

Document that we expect only one of 'id' or 'name' to be found, but
DTRT anyway if both happen to be present.
Merge pull request #225 from tseaver/100_pct_branch_coverage

Get to 100% branch coverage
Merge pull request #230 from tseaver/no-setup_requires

Remove install-time requirements from 'setup_requires'.
Add explicit support for 'entity_value' in protobufs.
Lint removal.
Add helpers.set_protobuf_value.

Handles compount fields (entity, key) not assignable via setattr.
Use helpers.set_protobuf_value to support composite types.
Fix docstring param name.

Incorporates feedback from @dhermes.