decoupled the GLGraphics2D object from the JComponent that it's painting
There isn't a single OpenGL thread, so don't restrict dispose().  This matters especially in Newt.
a corner case with drawing images is a BufferedImage with a custom type that can't be rendered to a Texture easily
corrected the matrix and viewport in GLG2DSimpleEventListener