Add events that can be shown in UI
Refactored update-player-with

Now update-player-with takes a function of type
  player -> (player, x)
and is itself of type
  game -> (game, x)
where the second return value is that returned by the parameter
function.