reorganizing GL functions into more subclasses.  pushing as much out of GL.init as possible.  making more modular for multiple canvases.