Refactor|Client: Game view size is taken from LegacyWidget

The objective is to make LegacyWidget resizable within the window.

Todo: GL viewport needs to be set separately for LegacyWidget
(using GLState).
UI|Client: Minor Video Settings dialog tweak
Client: Manage GL viewport exclusively with libgui GLState

This allows LegacyWidget to use its own viewport without disrupting
the rest of the UI.
Fixed|GL: Apply viewport changes immediately

Since the rest of the legacy renderer uses the immediate GL state,
we must apply changes to GLState immediately. Normally one would call
GLState::apply() at the appropriate time, e.g., just before drawing
something (Drawable handles this).
UI|Client|Renderer Settings: Moved wireframe and rend-tex under Developer

Not very useful for normal users.
UI|LegacyWidget: Use the LegacyWidget size as game view size

Rather than assuming the game view covers the entire window and
therefore is only resized when viewResized() occurs, now LegacyWidget
updates its size whenever its rectangle moves.
Fixed|Documentation|Doxygen: Incorrect source file names
UI|Client: Removed old Control Panel, settings now in the Appearance editor

Added a new panel-derived widget called FoldPanelWidget that supports
embedded, folding groups. This is used for settings groups in the
Renderer Appearance editor.
Fixed|libdeng2: IndirectRule's value becomes zero when unset

When the source rule of the indirect rule was removed, the indirect
rule did not invalidate itself. Instead, the last value before the
unsetting remained in effect.
UI|Client: Improved shared interface for console variable widgets
UI|Client|GridLayout: Allow defining a fixed width for a column

The fixed width defined for a column is used in the layout calculations
without affecting the size of the widgets in the column.
UI|Client: Widget improvements

- Panel eats mouse clicks not handled by children.
- FoldPanel closes immediately.
- Slider dots made slightly dimmer.
UI|Task Bar: Removed "Control Panel" from the config menu
UI|Renderer Appearance: Reseting individual setting groups to defaults

Each foldable group of setting can be reseted separately. The default
values of the cvars were added to ClientApp's
rendererAppearanceSettings.

Fine-tuned the alignment of groups so that the first column in
each uses the same width.
UI|Renderer Appearance|FoldPanelWidget: Tweaked appearance
UI|Renderer Appearance: Draw a scroll indicator

ScrollAreaWidget can now draw a scroll indicator independently.
This is not enabled by default, though.

Also dimmed closed fold titles a little.
UI|FoldPanelWidget: Use the button border on titles

All interactive clickable elements should behave the same way.
UI|Task Bar: Hide renderer etc. config items when a game not loaded

There is no point in adjusting the renderer settings etc. in Ring
Zero because the settings will anyway be immediately replaced with
the game's .cfg files.
Refactor|Client|Server|libdeng2: Current game and audiences moved to de::App

Added de::game::Game as the base class for actual games. The de::game
namespace was used because de::Game is currently in use by the apps.

A null game is now identified by an empty string as the identifier.
Removed the non-OO isNullGame() method (replaced by Game::isNull()).

de::App is responsible for knowing the current Game instance. The
games collection and the concrete game classes remain in the
client/server app.

Added a new audience that gets notified before a game is unloaded.
Refactor|UI|ButtonWidget: Buttons have a separate text color for the Hover state

This makes life easier for PopupMenuWidget and the FoldPanelWidget
titles look better (the normal button frames were distracting).