Functions that produce food & resources separately.

Extracted functions `produce-food` & `produce-resources`
from `production-phase` in preparation for phase-specific
events.
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.