CMake changes for SDL2.
Initial SDL2 support.

This updates it to use the SDL2 APIs, as well as implement a new THRenderTarget,
using SDL_Renderer -- which is HW accelerated.
Clear every frame, make fillBlack = glClear.
Update sdl_audio to SDL2_Mixer.

This also fixes a potential memory leak with rwops.
Simplify - remove other rendering backends.
Remove agg, as we don't use it any more.
Expose renderer backend in title bar.
Remove unused mode flags. Respect vsync setting.

This removes the hardware, opengl, and doublebuf flags, since we always create
hardware/opengl windows if we can, and we can't control the buffering of
SDL_Renderer. It adds support for the "present immediate" flag.
Keyboard fixes for SDL2.

This switches the keyboard handling code to always use symbolic / UTF8 names for
the keys, rather than relying on passing single characters, scancodes, and
whatnot.
SDL2: Pass key modifiers.

This passes key modifiers with each keypress, so we don't have to rely on our
own state for this.
SDL2: Query SDL for key modifiers each frame.

Instead of tracking our own modifier state in buttons_down, we now query SDL for
the keystate each frame using SDL_GetModState, which we store in
App:key_modifiers. We now check that variable when looking for shift/ctrl/alt
states, rather than buttons_down.
SDL2: Fix escape and space keybindings.
Fix building on GCC/MSVC.