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.
*De gustibus*, I think.  the point is to *get* the key, and raise if it isn't set, not just to make an assertion that it is set.