UI|Client|PopupWidget: Clamp left edge to view's edge

When a popup opens to the left, make sure it doesn't go outside
the view.
Refactor|UI|Client: Convenient constructor for LabelWidget with text

A static constructor method that sets the label text and optionally
adds it to a parent widget.

Also, CVarSliderWidget only gets its range from the cvar info at
construction time, afterwards it can be modified.
UI|Client: Added Stylist and DialogContentStylist

A Stylist is an object that configures widgets with a particular
context in mind. DialogContentStylist adjusts margins and backgrounds
for widgets in a dialog.
Renderer: Automatically adjust FOV for view aspect ratio

The FOV angle is now interpreted to be the horizontal FOV angle for
a view with 4:3 aspect ratio (matching the original DOOM). For wider
or narrower views, the FOV is increased accordingly, making it
independent of view width.

This fixes the problem of inappropriately low FOV angles with 16:9
or 16:10 displays.
Refactor|UI|Client: Various widget improvements
UI|Task Bar|Client: Added Renderer Settings

The Renderer Settings dialog contains renderer options that are not
strictly related to the visual appearance of the game world, or are
developer tools.

There will be a separate Appearance Editor for modifying the renderer's
visual profiles.
Refactor|UI|Client: Added PanelWidget as base class of PopupWidget

Panels are containers that may be opened or closed. PopupWidget now
extends PanelWidget with anchor positioning and indicator.
Refactor|Client: Added SettingsRegister, renderer & input settings

SettingsRegister provides several important functions:

- Stores/provides access to the default values of settings.
- Hides differences between old-style cvars and new script Variables
  when it comes to persistency.
- Manages a set of alternative, user-customizable profiles that
  each have an independent set of values for the settings.

There will be one SettingsRegister per domain.

Note that SettingsRegister augments and builds on the normal
persistent Config (and con_config).
Refactor|Client: Applied SettingsRegister for audio and video settings
UI|Client: Video Settings fullscreen mode, Close button

The "Mode" setting was replaced with a "Fullscreen Mode", which
only affects the fullscreen mode.

Adding a Close button makes Video Settings more consistent with the
other dialogs. The "Color Adjustments" button was moved into the
dialog to make room on the dialog button row.
Windows|Fixed: Build failure (system header conflict)