Added Undo/Redo using QUndoFramework.

Areas are now treated as "documents" - all changes to be made are pushed
through the current Area. Every Area has its own respective QUndoStack,
and there is a static QUndoGroup for every Area.

DestView has now been added as the primary base class for any view that
requires tile placement (collision placement to come later). MapView is
a subclass of DestView specifically for the map.
New version
Version