Further modularisation, Game embedded in GameM.

The wire definitions are now in their own module, and are significantly tidier
because the game state is now embedded in the underlying monad rather than the
input/output of the wires.  The helpers could still be extracted into their own
definitions, though.

Preliminary work on splitting out asset management is also underway.