`assert_total` `valuesFor`
Preliminary gamestate definition
Remove current values from `MenuInput`
`Dead` gamestate constructor needs universal
Remove the assumption of randomness from Serpent effect
All `Phase`s now accept a `rules` parameter

  This allows the behavior of menu saves to be specified and paves the
  way for much more specification of games in play.
Skeleton implementation of Serpent effect handler
Remove implicit randomness from `PlayAgain`
Add some operators on `MenuInput`s
Update `GameState` for 1db0ee6
Tighten specification of `Randomize` and `Reset`
Clean up types in specification

  Changed `(tag : Bool ** if tag then a else ())` to `Maybe a`, and
  removed the `Ruleset` result on the `Reset` command since it's always
  the same ruleset.
Finish skeleton implementation of gamestate handler