Only run BMP blending code on parts of the a being displayed.

The blending code used to run on an entire map when one was loaded, which
was noticibly slow.  Now the blending code is run only on the parts of the
map being displayed at any given time.
Removed qApp->processEvents call in MapReader.

Maps are loaded in threads now.
Fixed hang waiting for a map to load.

If a map was loaded asynchronously but processing was deferred, and the same
map was was later loaded non-asynchronously, loadMap() would wait forever.
Fix crash when a building has tile layers not in TMXConfig.txt.

The user might add tile layers to TMXConfig.txt, then paint some tiles in
those layers in BuildingEd.  Creating a BuildingMap from that building would
crash if TMXConfig.txt did not have those layers.

I need to display a warning when a .tbx files has tile layers not in TMXConfig.txt.
BmpBlender emits layersRecreated() in recreate().

This used to happen when update() was called, but that doesn't happen until
flush() gets called.
Fixed BmpBlender treating exclude2 layer names as possible tile names.
Fixed MapComposite::mapAboutToChange() clearing layergroups it shouldn't.
Fixed invalid index in MapReaderWorker::possiblyRaisePriority().

Hit an assert when the job at the end of the list changed priority.
Fixed AbstractTool::mScene member that is overridden by subclasses.
Fixed g++ complaints.