Added the MiniMap.

The MiniMap is a child widget of MapView.  It displays an up-to-date image
of the map being edited.  It can be resized using buttons in the MiniMap,
and hidden/shown using the menu command or 'M' hotkey.

MapDocument::regionAltered is a new signal emitted whenever the contents of
a TileLayer change.  Unlike regionEdited, regionAltered is emitted during
undo/redo, not just when the user edits something.

CompositeLayerGroup maintains a separate 'visible' flag for each layer
separate from Layer::mVisible.  This is to support multiple MapComposites
using the same Map.
Fixed underscore-in-layer-name issue with TilesetView context menu.
Moving MapObjects can be cancelled by right-clicking.
Fixed broken moving of Lots resulting from the sceneRect changing.
Update MapInfo when map size or tileset size is changed.
MapImageManager now correctly handles out-of-bounds Lots.

When a Lot was outside a map's bounds (except off the top of the map), it
wasn't possible to determine tile coordinates inside the map image correctly
due to the map being offset within the image by the Lot.  Previously, it was
taken for granted that the width of the image was equal to the width of the
map.

The MapImageManager now maintains a binary blob (one .dat file per thumbnail)
that records enough information to properly determine tile coordinates in a
map image.
Fiddled with the layout of the MainWindow status area.

This is to fix long mStatusInfoLabel messages, such as when dragging out a
tile-selection rectangle.
Fixed adding a tileset to the cache when the tileset wasn't loaded.
Fixed MapImageManager possibly drawing layer groups multiple times.
MapsDock and Preferences browse button label changed to "...".
Save/restore the tileset scale.
Update the MiniMap after a delay, and only when visible.

When reordering layers, the layer is first removed, then added, which caused
the MiniMap image to be recreated two times.
Fixed the MiniMap possibly drawing layer groups multiple times.
Added CompositeLayerGroup::isLayerVisible.

This change needed by previous commit to SaveAsImageDialog.

Checking Layer::isVisible() is okay as long as the MapComposite is the one
being edited.
More improvements to SaveAsImageDialog.

- Added "Draw lots" checkbox.
- Remember the user's chosen image directory in Preferences.
- Changed the "Browse..." pushbutton to "..." toolbutton.
- Fixed possibly drawing a layer-group multiple times.
Removed superfluous separator from the end of the TilesetDock toolbar.

The zoom combobox used to be in the toolbar IIRC.
Fixed switch-layer button in TilesetDock not appearing in the extension menu.

When there isn't enough room to display a toolbar button, the toolbar's
'extension' toolbutton appears which displays the remaining actions in a
popup menu.  But if you call QToolbar::addWidget(), that action won't
appear in the popup when the toolbar's parent isn't a QMainWindow.

So, the old QToolButton was replaced by a QAction.

Qt docs says:
When a QToolBar is not a child of a QMainWindow, it loses the ability
to populate the extension pop up with widgets added to the toolbar using
addWidget(). Please use widget actions created by inheriting QWidgetAction
and implementing QWidgetAction::createWidget() instead.
Fixed 'Draw lots' checkbox not being set correctly in SaveAsImageDialog.
Allow the MiniMap to get as narrow as 128 pixels wide, down from 256.
Removed LICENSE.LGPL.txt from CMakeLists.txt.