Refactor|Stereo 3D: Cleaning up VR state and Oculus Rift

To objective of this is to move the generic portion of the VR state and
Oculus Rift rendering into libappfw.
Refactor|Oculus Rift: Migrated head tracking to libappfw

de::OculusRift accesses LibOVR and provides head tracking information.
Refactor|Client|libappfw: Renamed stereo 3D mode enums
Refactor|Client: Moved VRConfig to libappfw

Also, removed some of the public member variables of VRConfig.
Fixed|Oculus Rift|libappfw: Shutting down LibOVR (dangling references)

One of the references to the created LibOVR objects was not freed, thus
causing shutdown of de::OculusRift to hang waiting for threads to stop.

Also, now de::OculusRift initialization is attempted once, after which
no further attempts will be made until deinit() is called. This avoids
retrying the initialization every time de::OculusRift is accessed.
Merge remote-tracking branch 'origin/master' into oculus-refactor

Conflicts:
	doomsday/client/src/ui/widgetactions.cpp
Refactor|Stereo 3D: Removed some of the public variables from VRConfig

The client handles these as cvars and updates VRConfig as necessary.
Documentation|qmake: Documented some deng_* build options
Merge remote-tracking branch 'origin/master' into oculus-refactor
Refactor|Stereo 3D: Removed all public member variables of VRConfig

Now the VR configuration cvars are kept in the client, while VRConfig
stores the parameters in use.s
Merge branch 'master' into oculus-refactor
Documentation|libappfw: Added API documentation for VRConfig
Refactor|libappfw|Client|Stereo 3D: Relocated window transforms

WindowTransform and VRWindowTransform were moved to libappfw. They now
work together with BaseWindow, a new abstract base class for application
windows.

The client's VRConfig instance was relocated to BaseGuiApp, where it can
be accessed by VRWindowTransform instances.

ClientWindow implements BaseWindow.
UI|Ring Zero: Tweaks to game selection menu

The height of the game session buttons is now determined more correctly
based on the height of four lines plus the margins of the widget.

Games are now sorted by identity key rather than title (customizable
sorting is upcoming).
libappfw: Added convenience header for BaseWindow
Merge remote-tracking branch 'origin/master' into oculus-refactor
libgui: Added swap control for X11, debugging Canvas recreation

GLShader, GLProgram, and GLFramebuffer now support recompilation/
has any effect on the OpenGL errors occurring after switching the Canvas
(it didn't).

GuiApp has an audience that gets notified when the Canvas is recreated.

Added swap control for X11 using the GLX function for this purpose so
that Canvas recreation is not necessary when changing vsync on X11
(which was causing OpenGL errors).
Fixed|libcommon: Passing a string argument to App_Log

Only POD data accepted.
Fixed|GLSandbox|Unix: Deploy testpic
Client|X11: Apply swap control via GLX for vsync