New AddTilesetsDialog, 'New' command implemented,

AddTilesetsDialog allows the user add tilesets to a .tiles document.  It
only lists tileset images in the .tiles file's directory that haven't been
added already.

The 'New' command forces the user to choose a savefile location so that
tilesets can later be added from that directory.
Added TileProperties.txt.

The properties are now defined in TileProperties.txt rather than being
hard-coded.  Some individual properties that require special processing
are still hard-coded and appear as "special" blocks in the .txt file.

TileDefDialog creates the property editing widgets on the fly now.
Removed all the "special" enum properites from TileProperties.txt handling.

The WallStyle, DoorStyle, RoofStyle etc properties used to have subclasses
of their own, but it seems that isn't needed.  PropGenericEnum was changed
to handle the different enum properties.

UIProperty::ChangeProperty() no longer updates TileDefTile::mProperties,
removing the need to keep a reference to it.  Now mProperties is only updated
when reading/writing the .tiles file.

Also improved error handling reading TileProperties.txt.

The background color of tilesis changed to indicate any unknown properties.

The tile tooltip shows the properties that will be written to the .tiles file
as well as any unknown properties.
Added highlighting of tiles with matching properties.

Tiles with properties matching those of the tile the mouse pointer is over
are displayed with a different color.
Added tileset history to TileDefDialog, etc.

This history feature is similar to a web browser's go forward/back buttons.

Added a toolbar.  Buttons everywhere!

Save/restore the tile scale.

Fixed the wrong tileset being deleted, and the dialog's list of tilesets
not matching the order of the TileDefFile tilesets.

Try to maintain which row is selected when resetting the list of tilesets.

Fixed crash with undo/redo when the affected tile wasn't in the displayed
tileset.
Made various enum property methods use strings instead of ints.
Added "modify" commands to TileProperties.txt.

Any number of "modify" blocks can be added to TileProperties.txt.
Each "modify" block contains a series of commands that are run against
the properties dictionary of each tile after being read in from a .tiles
file.  These modifier commands can edit the properties of a tile.
This can be used to remove/rename/replace properties and values.