Extract Characters to their own module
Pull client out of Simulation
Fix cabal file for new modules
Make server more suitable for using networked-game
Move to networked-game dependency
Make the countdown a real game mode
Pull "performAttack" back into Server
Wibble
Extract Character IDs from the characters
A rough stab at adding bot support

We use Hint to provide bots of type:

    BotHandle -> BotEvent -> Dynamic -> IO Dynamic

BotHandle: Allows bots to send commands to the server.
BotEvent: 20Hz timer (Tick World) or server commands that are
          effectively high-information diffs on world state
Dynamic: A dynamic type allowing arbitrary state (so long as it's an
         instance of Dynamic)

Questions/Issues:
1) Should the server be sending destination coordinates instead of
   incremental position/direction information to prevent cheating?
2) All bots can currenlty cheat, they see through smoke, know
   destinations, etc.  I'm not terribly interested in hobbling bots
   but I'd be up for reducing the information provided by the server.
3) The 'belt' system seems like a reasonable narrative for the
   educational aspect of this effort (the main goal).  However,
   I don't yet have a good handle on the actual course content -
   what concepts to introduce when is an open question.  Even
   the notion of teaching a Haskell EDSL instead of a custom language
   that happens to be compiled to a Ninja is an open question right now.
4) The probabilities applied at the frequency of the bot tick
   rate - I should fix that, make it Pr/second or some such.