OpenGL state is now tracked, better drawing performance!

GLTextureEngine.java: performance was impacted because for each draw the
state was setup then undone, so we now keep track of the drawing state
and only switch when we need to. Frame rate is ~30 frames higher on my
machine and MUCH more stable.
GLTexture.java: corresponding changes made here as well.