Added ShadowWorld.

The path scenes display a shadow copy of the actual world. This is similar
to the way BuildingEd works.  It allows modification of the world visually
during editing without touching the original world data.  Plus the original
world can be undergoing changes (while scripts are running etc) without the
display getting into a bad state which was a big issue in TileZed.
Reimplemented WorldQuadTree to allow moving objects.

http://gamedev.stackexchange.com/questions/20607/quad-tree-with-a-lot-of-moving-objects
Begin implementing path undo/redo.
Template-ized WorldQuadTreeObject and WorldQuadSubTree.
Fixed PathView::scrollContentssBy() causing excessive updating of WorldChunkMap.
ShadowWorld updates itself after PathWorld's nodes are moved.

1) Nodes are moved by the user using the path tool.
2) The undo/redo system moves the PathWorld nodes.
3) PathDocument tells ShadowWorld about the change.
4) ShadowWorld collects all the info about moved nodes into a pending
   change-list.
5) When the event loop is reached, ShadowWorld applies the changes to itself.
Fixed LuaPath::stroke leaving out a node.
Added SelectMovePathTool.  Re-run scripts in the area that nodes are moved.

Nodes keep a list of paths using them so that when a node moves, WorldLookup
can update the bounds of paths using those nodes.

When nodes are moved, WorldChunkMap will find any scripts in the area of the
moved nodes (original and updated positions) and run their region() function.
It takes the old + new regions and erases all the tiles in the combined region.
Then it runs the run() function of any script in the erased region to regenerate
the tiles.