Allow a door and/or a window in the north-west corners of a room.

The north-west corner tile does not support doors or windows, so if a door
or window is placed in a north-west corner of a room, the single NW tile is
split into a W and N tile as appropriate.  If there are already 2 different
wall tiles meeting at a NW corner then that case is handled as well.

To support both a door frame and a window in the same location, a new
layer called "Windows" was added.  Previously, both window and door frame
tiles went into the same "Frames" layer.

It isn't possible to have 2 doors or 2 windows in the same location, that
would require adding a "Doors2" and "Windows2" layers.
Support tilesets more/less than 8 tiles wide when creating a BuildingTileEntry from a single tile.
Load map thumbnail images in a separate thread.

When a map thumbnail is requested, a dummy image is returned (just a gray
polygon the size of the map) and the actual image is read in by a worker
thread.  The thread sends a signal when the image has been read, at which
point the display is updated.
Use threads to load tileset images in the background.

When reading a map, MapReader no longer reads the tileset images.
Instead, MapReader creates totally valid tilesets but with all-white tile
pixmaps.  When TilesetManager::addReference() is called, it adds a tileset
to the TilesetImageCache, and then sends that cache-tileset to a job queue
running in a worker thread to load the image.  When a thread finishes
loading an image, TilesetManager sets the tile pixmaps of the cache-tileset
from the image, then updates every tileset using that same image, replacing
the all-white tile pixmaps with the valid image data.  The tilesetChanged()
signal is then emitted to update the display.

When creating a thumbnail image, MapImageManager must wait for tileset images
to be loaded before generating the thumbnail image.
TileMetaInfoMgr now uses delayed-loading of tileset images.

The loadTilesets() method uses the TilesetManager to load tileset images
using its worker threads, rather than loading them directly.
MapImageManager uses 10 threads to load map thumbnails.
Stopped unnecessary loading of tilesets by BuildingTilesMgr::adjustTileNameIndex().
Removed some unused code.