Squashed 'Source/OpenTK/Platform/SDL2/sdl2-cs/' content from commit b434bac

git-subtree-dir: Source/OpenTK/Platform/SDL2/sdl2-cs
git-subtree-split: b434bacba859a036b11ec3ac76c3baa058764769
Merge commit 'ed45dddb98c8250a33505c953b6c60bf7a854ffb' as 'Source/OpenTK/Platform/SDL2/sdl2-cs'
Integrated sdl2-cs bindings for sdl2

This is using the sdl2/pure branch of https://github.com/thefiddler/SDL2-CS.git which contains the SDL2 bindings without MiniTK.
Implemented SDL2 platform using sdl2-cs

This is a new platform that can be used then sdl2 is installed on the target system. SDL2 is commercially supported by Valve and provides better support for MacOS compared to our current implementation (Cocoa vs Carbon). It will also help us introduce faster support for new platforms. Existing platforms remain as a fallback and will be automatically used if sdl2 is not installed.

Please note that this is still a work in progress. The new mouse and keyboard API is not supported yet. Due to limitations of sdl2, multiple mice/keyboards are also not supported.
Merge branch 'master' of https://github.com/thefiddler/opentk into sdl2
Merge remote-tracking branch 'origin/master' into sdl2
Use Wgl.Import.GetCurrentContext DllImport directly

Wgl is implemented using the regular DllImport + delegate approach, in
order to support extensions. The delegates have not been armed at this
point, so we need to use the DllImport directly.

The whole wgl API should be revisited (we are using only a tiny
portion.)
Add debug message when context creation fails
Use OpenGL window flag and switch to "fake" fullscreen mode

The OpenGL flag is required when using SDL2 on Windows. Fake fullscreen
works much better on modern monitors and systems with multiple monitors.
Increased the text surface size

This is necessary for high-dpi monitors which render text at double
resolution.
Implemented WindowState, WindowBorder and Icon

SDL2 suffers many of the issues we encountered when implementing
OpenTK.Platform.Windows. Workarounds are now in place to make
WindowState changes behave reasonably.
Updated license information
Fixed decoding of Icons

The rgba mask for decoding icon surfaces was incorrect. Icons should
appear as expected now.
Free SDL surface after updating the window icon

The SDL surface is no longer needed and will cause a memory leak if not
freed. Additionally, the decoded BitmapData should not be unlocked until
after updating the window icon, as it may be moved by the GC otherwise.
Added high-res icons to Example Browser

The Example Browser should now look better on high resolution screens.
Reduced icon resolution to 128x128 in order to avoid "out of memory" errors when building with Mono.
Implemented SDL2 mouse and keyboard drivers
Made internal SDL2 API private
Renamed Sdl2InputBase to Sdl2InputDriver

Sdl2InputDriver describes the role and function of this class more
accurately.
Fixed documentation comment