Split step function into two phases & added games.

- The step function now takes place in discrete Environment and
  Computation phases.
- There is now an optional a Creation phase for games that want to
  ignore each robot's preloaded output register.
- There is now a display library, Botworld grids are rendered using
  ASCII box drawing characters.
- The visualization has been overhauled: the standard output grid has
  four 'flags' to tell you what happened in each square:
  - item lifted / dropped
  - robot created
  - robot destroyed
  - robot inspected
  - robot made invalid action
  You may also inspect a square for full details.
- 'ct' language added to make writing Constree slightly easier.
- Simple ct2hs binary added to convert ct files into Haskell modules.
- Added a number of games, including:
    - The Prisoner's Dilemma
    - The Stag Hunt
    - The Precommitment game
    - The Self-Destruct game