Removed the memory address/hash requirement for a villager's registry key.

Having this requires other villagers to know other villager's memory address
to vote for them. Moreover, this allows villagers with identical names and roles
but are "deep copies"---this can get confusing.

Test for duplicate villagers and game environment should reject them.
GameEnvironment (via IdentityMapper) is now checking the name+role combo before registering a villager.

Also features some code review for clean-up.
Code review after months.

Renamed get_identity to get_privileges since that is more mnemonic. Removed some
TODOs and FIXMEs.
Decided not to use the commands module for the meantime.

Adds too much complexity for a proof-of-concept project.
Started using the Observer pattern in issuing commands. Not yet fully fleshed out.

So far, decided on the following fields:
  action - kill, vote, check, guard
  recipient_name
  recipient_role
  hiverole - for checking which hive may get this command