Support for enabling scissor testing on a per Material basis via RenderState.

Added support for enabling GL_SCISSOR_TEST and defining the dimensions of the scissor rectangle by using Material's getAdditionalRenderState(). Forum thread: http://hub.jmonkeyengine.org/forum/topic/enabling-and-specifying-scissoring-via-renderstate/

RendererContext now includes renderStateClipRectEnabled along side clipRectEnabled. I also have replaced clipX/clipY/clipW/clipH with a ClipRectangle object and added several new ClipRectangle objects. Their purpose is as follows:

currentClipRect - Contains the dimensions of the clip rectangle currently set with glScissor(). Updates are compared against this to check if a glScissor() call is necessary.
rendererClipRect - Contains the dimensions of the clip rectangle from the last call of setClipRect(). In the event that clipRectEnabled is true and renderStateClipRectEnabled is false currentClipRect should be logically equivalent to this.
renderStateClipRect - Contains the dimensions of the clip rectangle from the last call of applyRenderState assuming that Material.setClipTest() and Material.setClipRect() were true. In the event that clipRectEnabled is false and renderStateClipRectEnabled is true currentClipRect should be logically equivalent to this.
intersectionClipRect - Contains the dimensions of the clip rectangle that is the intersection of both clip rectangles set by setClipRect() and applyRenderState(). In the event that both clipRectEnabled and renderStateClipRectEnabled are true currentClipRect should be logically equivalent to this if the intersection is valid, otherwise it is zeroed.

Some changes to setClipRect() and clearClipRect() were required with the intention that it functions as a master switch. setClipRect() will always result in GL_SCISSOR_TEST being enabled and glScissor/currentClipRect being set to the values entered. clearClipRect() will always result in GL_SCISSOR_TEST being disabled.