Modified FTGL to render out to index and vertex buffers.

With this refactor the separation between packed and unpacked shapes is now clearer.
The following FTGL font classes can now render out to our device buffers:
FTPolygonFont, FTExtrudeFont, and FTOutlineFont.

Surprisingly the FTOutlineFont which draws simple lines around text looks really nice.
I will probably change the node graph to draw most elements with lines along the outlines only.

We've also started to solidify the open shapes node graph api.
This is taking place in NodeGraphContext.
We're making sure not to use any globals or singletons in this project.
So currently the main objects in the NodeGraphContext are the shapes pipeline and the font pack.
The shapes pipeline is shared between drawings of many different groups.
The font pack is shared between many packed and unpacked text shapes.
The font pack is able to returns bounds for the packed text shapes, and it
also does the rendering out to device buffers for unpacked text shapes.

Also the ShapeBuffer and ShapeDeviceBuffer have renamed to:
SystemGeometry and DeviceGeometry to reflect their more general nature.
They can be used to hold data for any gl draw type. eg. GL_LINES, GL_TRIANGLES, etc