Added WorldScript.

Each world has a list of scripts applied in order. Each script has a list
of key/value parameters and 0 or more paths that the script will operate on.
The scripts are responsible for putting tiles into the world's tile layers.
All tile-drawing functions will operate in *world coordinates*. Tiles put in
by scripts are not going to be saved anywhere, the scripts should always
produce the same tiles.

Scripts have a region() function that returns the tile region *in world coordinates*
that the script effects. Signed 32-bit ints are what QRegion uses and should
be big enough for any world we'll be creating.  The regions will be used to
quickly determine which scripts must be re-run to generate tiles when other
scripts are added/removed/changed in a given area.
Added TilePainter, WorldTileLayer, WorldTileset, WorldTile.

World now has lists of tilesets and tile layers.  The WorldTileLayer class
doesn't store any data at the moment.  Instead, it uses the abstract TileSink
class to put tiles somewhere.  CellScene currently implements its own sink
that puts tiles into the map.

The TilePainter class is like QPainter, it has a bunch of methods for
filling rectangles, regions, and paths with tiles.  It can stroke a path
to a certain thickness then fill that with tiles.
Added quadtree for fast lookup of nodes, paths, and scripts.

The QuadTree comes from the OSM::* stuff.
Added PathDocument,PathView,IsoPathScene/OrthoPathScene etc.

This is the start of Google Maps style editing, where the user can switch
between orthographic/isometric world views and zoom in/out of tile edit
mode all in one view.
Added TilePathScene etc.

This is the isometric tile-scale view.