Cleanup
libgui|GLState: Setting a normalized viewport

A normalized viewport is useful when the actual root view is larger
or smaller than the render target. A normalized viewport is relative
to the render target size.
LegacyWidget|GL: Utility for setting the viewport for legacy graphics code

LegacyWidget's glApplyViewport() sets a viewport that is automatically
normalized to the root view size.
API|GL: Public GL API now uses GLState for scissor; added push/pop state

This commit fixes scissor-related issues when drawing stuff via the
public GL API (e.g., game automap).

The public GL API now internally uses GLState to set the scissor box.
This fixes a GL state update conflict between legacy code and libgui
based code. The public GL API now also has functions for pushing and
popping GLState.

The version number of the public GL API was incremented; old API is
no longer supported.