Improvements to Node Selection Logic and Node Dragging.

GeoRanges are no longer allocated by default.
It's best to keep them deallocated as long as possible until the size is known.
This is because resizing them once they're in the SystemGeometry is expensive as
they need to shift all the other ranges which come after it.

The caching of which Packed Drawables is dirty is not yet complete.
Currently we're still unpacking all CompShapes and loading everything to the device.

Isolating the interaction to each Drawable also seems like it's working well.
Although we've only tackled the NodeDrawable to this point.

CompShapes now have modes. The current modes are Selected and Deselected.
The Drawables have now also acquired methods to deal with modes but
they just pass them down to their interal CompShapes.