Add easter-egg props
Remove apparently-dead LASTLobbyBackground variable.
Remove unused 'slot' parameter from ChangeBackgroundLobby.
Localise some variables related to the faction picker.
Simplify some faction picker code.

Closes #238
Fix the Skirmish-mode start game button.

Closes #240
Abort CPU benchmark if the user leaves the lobby

(Text copied from pull request)

An edgecase, but it's been annoying me: The CPU benchmark runs to completion
even if the user returns to the main menu (which, admittedly, can only happen
if you're in a LAN game).

While I'd dearly like to just exterminate this ridiculous benchmark entirely,
this should go some way to making it less irritating.

More generally, we should perhaps consider replacing it with something that
gives a more accurate picture of how well a machine will cope in-game. Testing
the performance of Lua arithmetic operators isn't a sensible way to do this:
this is not the nature of the majority of the game's load.  Realistically, the
best way to produce a rating would be just to read system information (whatever
windows' equivalent of lspci, /proc/cpuinfo and /proc/meminfo are) and make a
decision based on that. As-is, the benchmark often spits out slightly stupid
numbers that aren't really representative of how well a machine will perform
in-game, and causes many seconds of UI unusability while it's thinking about
it.

Closes #243
Simplify default option hiding logic.

Closes #249
Move constant logic from UpdateGame to CreateUI
Fix mod manager background

Closes #253
Merge branch 'origin/master' into develop

This brings the christmas presents into patch 3639
Credit to ozonex for the presents
Remove the Steam Lobby reference

Closes #252
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