Update game state based on OpenAMD location updates

Implements update_player_positions(), which involved porting over the old
check_buttons() in to _update_active_players and modifying
_update_game_board slightly to accept the player notifications as a parameter.
This should be the last case of code porting and hopefully all changes from
here on out will just be improvements to the functionality from the original
HOPE-era codebase.

It should be possible to implement a simple test driver to simulate updates
from OpenAMD in order to see a full simulated run of the game.

There are still a few things that would be nice improvements to implement:
- OpenAMD provided x,y,z in addtion to area. Since we have the geo of the
  floor, it should be possible for us to confirm that the values are sane
  or make up for missing area data in some cases.
- More robust error messaging and logging in the case of unexpected data in
  AMD updates. This actually bit us hard at the conference in 2010, so
  something that would've helped then would be nice to implement.
- _update_game_board() is still really misleading and should at least
  get a pass thorugh its comments to make it clear what's actually going on.
  The original code apparently rotted hard?
- I'd like to remove the dependency on floor_list for anything other than
  testing