Add map-related code, including GridSquare

GridSquares include a TerrainType (an enum) to specify what kind of
terrain it would be.
Modified map classes to use GridSquare and added initialisation code for
setting up the map.