Send the cmd data to the backend thread instead of the struct

The code expects a pointer to the cmd data, not the struct that contains it
Fix potential GLimp_SetCurrentContext race condition
Revert "Fix potential GLimp_SetCurrentContext race condition"

This reverts commit 976025fadc63e1756bb46b3de9235692a3a67189.
Fix -Wreorder warnings
Fix most compiler warnings in the GL3 renderer
Fix many warnings in the game module
Fix warnings in client and server
Removed unused function from vanilla renderer
Remove -DUSE_GLSL_OPTIMIZER from Visual Studio cmake arguments
Move Opus from client to it's own CMake target
Merge remote-tracking branch 'remotes/origin/master' into gameplay/viech

Conflicts:
	src/gamelogic/game/g_main.c
Fix compiler warning about allegedly uninitialized variable in bg_pmove.c.
Use a separate icon for the firebomb.
Reposition confidence bar, charge bar, upgrade selection and mine rate.
Merge branch 'gameplay/viech' of ssh://github.com/Unvanquished/Unvanquished into gameplay/viech
Update help menu.
Merge branch 'gameplay/viech' into gameplay/devserver

Conflicts:
	CMakeLists.txt