SDL: Clean up graphics manager switching slighty.

Sadly this also requires us to extend GraphicsManager for this SDL specific
feature. However, since that's only used in the SDL backend and Tizen it
should be fine for now...
SDL: Always initialize video subsystem in initSDL.
SDL: Clean up graphics mode handling for OpenGL backend.

Instead of custom memory management Common::Array is used now.
SDL: Get rid of loop in OSystem_SDL::setGraphicsMode.
SDL: Get rid of _glModesCount.
SDL: Simplify initial graphics manager selection for OpenGL.
SDL: Make setupGraphicsModes non-virtual.

The logic of switching the managers is pretty much fixed at the same level
and cannot be easily overwritten.
SDL: Only allow switching of SurfaceSDL <-> OpenGL when no custom manager is used.
SDL: Do not require a static graphics mode list in OpenGL and SurfaceSDL.
SDL: Fix default graphics mode for switchable case.

The former code (incorrectly) assumed that the getDefaultGraphicsMode returns
the index in the table returned by getSupportedGraphicsModes. Now the correct
ID is searched and then used.
SDL: Reduce code duplication a bit.

Now instead of initializing this in OSystem_SDL::initSDL (and in subclasses
overwriting this) we simply initialize it in OSystem_SDL::init.