Allow map loading when tileset images couldn't be loaded.

When loading a map, if a tileset image couldn't be loaded, a fake tileset
image is created of the appropriate size.

TilesetManager has a special "missing" tile that is used for every tile in
a tileset whose image couldn't be loaded.
Added TileMetaInfo manager and dialog.

Lemmy asked for a way of assigning an enumeration to certain tiles so that
WorldEd could create a list of all doors/windows/containers etc in a room.
MapImages will be recreated if source maps originally had missing tilesets.

Since maps may now be successfully loaded when tileset images are missing,
map images may be created using the "missing" tileset; the binary map-image
data-file now remembers if that was the case.  They next time the data-file
is read, it will be considered invalid if the missing flag is set.  This will
cause the map image to be recreated in case the tileset issue was resolved.
MapManager changes missing tileset images in a loaded map to the "nice" version.

When a map is loaded and a tileset image couldn't be loaded, an all-red tileset
image is used.  TilesetManager has a nicer ??? image that is used instead.
The tileset dock displays missing tileset names in red.
TileMetaInfoDialog will replace existing tilesets of the same name.

If the user adds a tileset with the same name as an existing one, the existing
one will be replaced.  The meta-info will not be changed however, even if
the new/old tilesets have different sizes.
TileMetaInfoDialog displays missing tileset names in red.
Use Map::missingTilesets() in TmxMapReader::read().

Just a cosmetic change.
Added divider line between tile categories and furniture groups in lists.
BuildingTilesMgr uses TilesetManager's missingTile() instead of its own.
BuildingTilesDialog displays missing tileset names in red.
Use the current room's floor/wall grime tile as the one to select in the associated category.
Use the index of BuildingTileEntrys as a tie-break when they use the same displayTile().
Make tile views change scale in response to control-mousewheel events.
BuildingEd uses a single "missing" tile for missing tileset images.

When a tileset can't be found we still need to set the tileset's source()
to something valid so the path can be written properly to TMXConfig.txt.

When displaying the tiles in a missing tileset, we show nothing rather
than the single ??? tile.

When resolving a BuildingTile to a Tiled::Tile, return an actual tile
from a missing tileset rather than the TilesetManager's missingTile().
Otherwise the various category views display any tiles from missing tilesets
under the name "missing" rather than the actual tileset names.
Added "Right-click to delete any object." to Wall tool's status text.
Fixed (unimportant) error with FurnitureTileDelegate::sizeHint().

The size of a header should have included extra * 2 but didn't.
BuildingEd manual: documented the various config files.
BuildingTiles.txt uses the 2 fixed sloped roof tiles from location_community_church_small_01.

The roof_01 tiles relied on a -1,-1 offset to appear in the correct position,
but cap tiles at the back of a roof object using them were drawing on top of the
sloped part of the roof.
Added "Delete" command to BuildingEd to delete selected objects.