Added HeightMap classes.

This is the start of heightmap editing.
HeightMap is a streaming heightmap class that covers a whole world.
HeightMapFile reads/writes chunks of a heightmap.
HeightMapScene only shows 3x3 (or less) cells.

Instead of allowing scrolling through the entire world, just show a 3x3 grid
of cells centered on a specific cell.

Also implmented nice wireframe rendering using shaders.
See http://www2.imm.dtu.dk/~jab/Wireframe/.
Implemented undo/redo for heightmap.
Added temp icon for the heightmap tool.
Implemented saving modified heightmap chunks.
Added saving/loading heightmap filename in a world file.
Added undo/redo for setting heightmap filename.
Added mesh and flat heightmap display styles.
'Generate Lots' writes heightmap byte to chunks.
Display cell/lot images in HeightMapView's minimap.
Left a line out from a previous commmit.
Fixed saving when HeightMapDocument was current.
HeightMapDocuments are placed after CellDocuments.
Center HeightMapView on the cell's center when opening.
Playing with lighting shaders (doesn't work).

Need to calculate a fake normal vector for heightmap mesh?
Since the display is orthographic, the triangles are all z=0.
Draw tex_blends_natural_01.png in the heightmap view.
HeightMapItem looks for Texture/tex_* texture equivalent for tileset images.
Generate Lots no longer writes the room ID to each tile position.

This was removed at lemmy's request to save space.
Fixed LotPackViewer to not read room ID and to read heightmap height.

Room IDs were removed in the last commit.
LotFilesManager loads all maps asynchronously.

Old method:
1) load cell map
2) create MapComposite and wait for its embedded lots to load
3) load each world lot's map one-by-one

New method:
1) start loading cell map asynchronously
2) start loading world lot maps asynchronously
3) when cell map is loaded, create MapComposite which starts embedded lots
   loading
4) wait for world lot maps and MapComposite embedded lots to finish loading