spearmint: Merging GL2 refdef extras into refdef_t
spearmint: Turn recursive drop into fatal

When client cannot load cgame or cgame has unsupported API,
a recursive drop error happens and engine doesn't shutdown cleanly.

On Linux in fullscreen, you get stuck with a black screen. (Can kill it using a TTY.)
(Due to unaccessible error dialog causing program to freeze.)
spearmint: Make sure the new printf can't inf loop in Com_Error
spearmint: If ERR_DROP while switching gamedir, change back to last one
spearmint: Only error once for missing default.cfg

Use Com_Error so client can try to load previous game instead of exiting.
spearmint: Change title of pk3 mismatch dialog
spearmint: Don't refresh master addresses when ever get a info request

Causes server to hang the first time if not sending heartbeats to masters.
spearmint: Allow CGame to call SV_Shutdown

sv_killserver cvar allows UI to shutdown local server, but it happens later in the frame.
This makes things more complicated. It cleared mouseFlags after actually setting the cvar,
so Team Arena postgame lost mouse input.

Team Arena also had a hack to not start high score sound until server actually was killed, which is unpleasent.
spearmint: Increase MAX_SNAPSHOT_ENTITIES to 512 for ET
spearmint: Fix COM_Parse line counting

Broke in cef4cd1e60a214b573b51e36fd1942effe696de6
spearmint: Add linear fog support to OpenGL2

Based on OpenGL1 linear fog method from ET.
iortcw used for reference for adding another GLSL fog type.
spearmint: Add support for 'else' to shaders
spearmint: Restore cvar defaults when switching games

gameconfig.txt allows changing cvar defaults. Now the 'real' cvar
defaults are saved and restored when restarting file system.
spearmint: Fix restoring overridden latch cvars defaults
spearmint: Extend fogParms, remove linearFogParms

ET changed fogParms from exp fog to linear fog. I originally added
linearFogParms and create patch shaders for ET. There is a few issues
with this.

q3map2 will only create fog volume if fogParms is in shader, so for new
maps you would need to specify fogParms and linearFogParms.
By requiring ET maps to have patch data to use linear fog there would be
issues with add on maps.

Allow fog type to be specified at end of fogParms and fall back to type
set by r_defaultFogParmsType (which can be set by gameconfig.txt).

Fixes q3map2 issue and ET can have fogParms default to linear.
spearmint: Have CGame pass sizes for various structs

Handle mismatched sizes. This allows extending the structs
without breaking backward/forward compatibility. Missing
fields are cleared.
spearmint: Remove glconfig_t run-time check

Extending glconfig_t doesn't break the API anymore, cgame says how big it is.
spearmint: Moved SAY defines from q_shared.h to mint-arena
spearmint: Let game disable loading files for chat AI

Setting botlibvar "synfile", "rndfile", "matchfile", or "rchatfile"
to "" no longer tries to load the file.

World of Padman only uses matchfile.
spearmint: Fix GL2 skipping some shader lines

Lines after q3map_sun[Ext], q3gl2_sun, and q3gl2_tonemap were
skipped. Caused by specific keywords calling SkipRestOfLine,
because Spearmint calls SkipRestOfLineUntilBrace after done
parsing each line.

This broke ET's railgun sky shader.