Refactor|libgui: Allow manually setting the main window in a test app

Moved the 'main' window pointer to CanvasWindow.
libgui|GLTarget: Clearing buffers
Cleanup|libgui|Canvas: No need for a fallback drawer

CanvasWindow always registers a draw observer.
libdeng2|Rectangle: Another fromSize() constructor

Constructing a rectangle from just the Size vector.
libgui|GLState|Canvas: Viewport is now part of the GL state

Notable change: the topmost GLState on the stack is now applied
automatically when a Canvas is drawn. The future implication is that
the client's initial GL state for a frame needs to be on the GL state
stack.
Tests|glsandbox: Clearing the viewport