Create Headless and Base graphic-related assets

One task that will be needed for non-lwjgl operation is to create assets that are not tied to lwjgl.  This patch provides support for that.

Create Base abstract graphic-related assets.   ...rendering.base
Create Headless assets from the base classes.  ...rendering.headless
These match ...rendering.openGl, although it might make more sense to create a new rendering package that is the parent for all three of these.   Maybe rendering.system-or-framework-or-library.base/headless/openGL

Much of the OpenGL classes could also inherit from the Base classes, but the one that benefits the most is OpenGLFont, since all but the draw method is shared code.   And this method is destined to be removed.

So I didn't do the other ones -- the benefit is far less for the other classes.  Material might be another good one for sharing data, and I might revisit that one.