Avoid interior use of 'key()' setter-getter.

Instead, use '_key' directly, adding a '_must_key' property which
raises a NoKey exception if None (for use in cases which require a key).

Allows removal of the pylint 'maybe-no-member' comments.
Add tests for logic in Entity.__repr__.

Fixes #174.
Add assertion that query cursor is copied during '_clone'.
Rework Query._clone to avoid spurious copy of dataset.

Fixes #171.
Update docstring for 'Connection.save_entity'.

Indicate that upsert clears existing properties before applying those
passed to the API.

Fixes #167.
Unused import.

Incorporate feedback from @dhermes.
Update doctstrings for 'Entity.save' and 'Connection.save_entity'.

Reinforce that previously-stored properties which don't have values set
in the current entity instance will be removed.
Clarify docstring for 'Entity._must_key'.

Incorporates feedback from @dhermes.
Merge pull request #258 from tseaver/167-connection_save_entity

Fix #167:  Update docstring for 'Connection.save_entity'.
Merge pull request #253 from tseaver/174-verify_entity_repr

Fix #174: verify Entity.__repr__ logic
Merge pull request #254 from tseaver/171-rework_query_clone_deepcopy

Fix #171: rework query clone to avoid spurious copy of dataset