SDL: add SDL2 enable switch to configure

Defaults to disabled.
SDL: add SDL2 compatibility defines

The purpose of these are three-folded:
1) Allow flags that are used in SDL1 but ignored in SDL2
2) Allow function calls from overridden virtual methods.
3) Map types/defines that has a 1:1 mapping from SDL1 to SDL2
SDL: do not compile sdl-audiocd when USE_SDL20 is defined
SDL: condition SDL_AudioDriver on USE_SDL20

SDL_AudioDriverName does not exist in SDL2.
SDL: add SDL2 support to surfacesdl-graphics

This adds a new SurfaceSdl20GraphicsManager class that
inherits from SurfaceSdlGraphicsManager.
SDL2 incompatible constructs in SurfaceSdlGraphicsManager
is refactored into a set of seperate methods, which
SurfaceSdl20GraphicsManager then implements according
to SDL2.
SDL: add SDL2 support to sdl-events

Most of the incompibility caused by the renaming of
some types and defines is handled by
backends/platform/sdl/sdl-sys.h, but the biggest
remaining change here is due to that mapKey was
making assumptions about the ordering of the SDLK_xxx
defines.
The order have changed in SDL2, so the problem is solved
by first transforming the SDLK_xxx code to a COMMON::KEYCODE_xxx
and then do the mapping from that.

Another big change in SDL2 is the removal of the unicode
field in the SDL_KEYDOWN events.
Unicode data is now provided by the SDL_TEXTINPUT event
instead.
To merge the SDL_TEXTINPUT event that follows the SDL_KEYDOWN
event, the event queue is peeked into for an SDL_TEXTINPUT event
on each SDL_KEYDOWN event.
The SDL_TEXTINPUT event is never issued after SDL_KEYUP events,
so on the surface it would seem that there would be a difference
in behaviour from the SDL1 code.
However, empirical testing has showed that SDL1 do not set the
unicode field on SDL_KEYUP events, so the behaviour is anyway
equivalent to that.

A couple of minor changes due to changes in the VIDEO events
and SDL_WM_xxx functions are also present.