Bug 1049887 - Ensure we properly restore the scissor rect state in the GL context after running Java code. r=snorp

The C++ GLContext wrapper doesn't know about the changes to the GL state that the
Java code does, so Java must be careful to restore the GL state to the way
it was. The ScopedGLState RAII code doesn't quite accomplish this because of caching
in the C++ GLContext wrapper, so we have to do this directly from Java code.