Bring back the launch game button

Apparently people quite like to have this button.
Mop up some UI code.

Simplifying the logic for special-casing singleplayer.
Some UI controls should not be visible in skirmish mode. Previously, CreateUI() would conditionally create those controls and then code that refers to those would have to keep checking if the UI element they want to play with exists.
With this patch, we unconditionally create UI controls but conditionally *show* them. This looks no different, but means we can optimise away a large amount of rage-inducing "if GUI.something then..." checks.

This patch also makes the creation of label textfields less repetative by moving the SetDropShadow call into the UIUtils utility function (and in some cases optimising away redundant explicit calls to SetFont/SetText immediately following CreateText (which alrady supports setting both of these things)).
Simplify ping-colouring logic.
Remove code duplicated in a botched merge.
Simplify skinning logic