Fix #174: verify Entity.__repr__ logic

This PR also removes use of the 'Entity.key()' getter/setter inside Entity methods, replacing with either the bare '_key' attribute, or a new '_must_key' property, and removes the pylint 'maybe-no-member' toggles.

Rework of #252.
The intent is to indicate that the key "must" exist and an error is thrown if not?

Can we replace with something like `_key_required`?