Verts are now stored in vertSets, which also contain the set of polygons which reference each vert.

This is useful because it allows polygons to be notified when the verts they reference change, such as when
two verts are merged together during a csg operation and the index needs to be updated or when the vertex's
position changes and the polygon needs to refresh any cached values.

The algorithm currently used to merge the vertex sets for two objects in a csg operation is kinda naive and
may need improvement, but I'm not sure.  It's important to remember that every vertex reference in objB will
be remapped and none of the references in *this will be remapped, so any optimisations which appear to reduce
the number of unnecessary remaps for objB will probably be fruitless.  At the very least, that std::vector used
to hold the table should probably be replaced with an array which is the size of the largest list of vert indices
in any of the polies to avoid redundant re-allocations.

Also, the part of the above algorithm which fills the table is O(n^2); this can be improved by using a kd-tree
to search for verts which are close to each other.
Made some minor changes so that it wil build when not in debug mode