Major Terrain Map Update
- TiledMap renamed TerrainMap which depends on Terrain
- Background is obsolete in favor of Terrain. Terrain objects store
  a type ID and elevation. Type-specific member functions of
  Terrain objects look up data in prototype cache maintained by the
  classes Terrain and TerrainPrototyper.
- TerrainPrototyper registers new Terrain type data prototypes.
  There is currently no erase function.
- TerrainMap implementation is responsible for maintaining game
  logic, specifically whether Terrain tiles are walkable or not.
- TerrainMap implementation also handles increasing and decreasing
  elevation. The updated elevation is returned.
- Will subclass TerrainMap to a populated map to handle doodads,
  NPCs, and player objects.
Committed SimpleTM.