Build with SDL 2 by default, but still support SDL 1.2

Closes #1064

Changes:
- SDL 2 libraries/headers are searched for in CMakeLists.txt
- getJoystickName() and getKeyName() added to InputState
- Copied over SDL_VERSION_ATLEAST statements from previous SDL 2 work
- Reset FULLSCREEN, HWSURFACE, and DOUBLEBUF when resolution changing
fails in GameStateResolution
- Wrap the appropriate code in SDLRenderDevice with SDL_VERSION_ATLEAST
Add RenderDeviceList for picking render backends at runtime
Move setSDL_RGBA() to private SDLRenderDevice function

This function could be part of the RenderDevice class, but I'm pretty
sure only the SDLRenderDevice makes use of it. Either way, it can't have
it's current scope in RenderDevice.h, as it will cause problems when
compiling with multiple RenderDevices enabled.
CMakeLists: make compatible with clang3.4

clang 3.4 is now standard at the travis building service and clang 3.4
seems to not support -fwhole-program.

Also remove the additional linking to lstdc++ if the compiler is clang.
We're a C++ project, so we'd want to use clang++ instead of clang.

Also removed -fno-enforce-eh-specs, which violates the C++ standard,
but may be useful for reducing code size in production builds.
Merge pull request #1071 from dorkster/sdl2

Allow building with SDL 2 and create RenderDeviceList
Merge remote-tracking branch 'mainline/master'

Conflicts:
	CMakeLists.txt
Merge pull request #1072 from stefanbeller/master

CMakeLists: make compatible with clang3.4; repair travis build