Remove unused waitForEvent logic
Implement Player.entities and Game.entities
Rewrite beginTurn logic using a fairly simple event system
Use GameTag.TURN
Use a property for Player.currentPlayer instead of comparing every time