Remove mouse cursor hiding code, clean up.

Remove ‘in_hide_delay’ variable, replace ‘in_smart_grab’ with ‘in_grab’.
Allows the mouse to be enabled but never grabbed in windowed mode.
Allow ‘desktop’ keyword in ‘vid_modelist’.
Add experimental SDL 2 backend.
Don't project spawn pad model shadow.
Fix the way GL headers are included.

Use SDL_opengl.h when available. This is required on OS X since native
GL headers lack some PFNGL* typedefs there.

On Windows, pre-include windows.h when builing using MSVC since its gl.h
doesn't include it, resulting in build errors.
Rewrite Win32 modelist building.

Avoid merging video modes with the same resolution but different display
frequency into the same mode with highest available frequency. List such
modes as is, sorted from highest frequency to lowest.

Specify the first mode as ‘desktop’ to make sure ‘vid_fullscreen 1’
always works, even if mode enumeration doesn't list the desktop mode.
Fix empty model to ‘male’ when parsing player skins.
Don't always clear notify area when starting mm.
Fix some BSD specific issues with building system.

‘--no-undefined’ linker option seems to be a Linux-only thing, never
enable this on BSD.

BSD ‘wc -l’ produces leading whitespace that needs to be trimmed before
converting to revision number.
Allow inverted color in HUD strings.