[SDL] Do not attempt to use versions < 2.0.0

Versions prior to 2.0.0 are not ABI-compatible with 2.0.x and
attempting to use those will result in random instability. We now
explicitly check the SDL2 version before enabling the SDL2 backend.
[SDL] Removed unnecessary if-branch
Merge pull request #126 from thefiddler/sdlversion

[SDL] Do not attempt to use versions < 2.0.0
[Test] Added API compatibility test

This test checks every public API under OpenTK.Audio, OpenTK.Compute
and OpenTK.Graphics for compatibility. Incompatible changes will cause
a compilation failure.
[Test] Added API.Desktop to OpenTK.sln
Fix a bug in single->half conversion.

The original C code had if(m & 0x00800000) which is true if the
expresssion does not evaluate to zero. This was inncorretly translated
to the C# code if((m & 0x00800000) == 1) which only evaluates true if
the expression evalaute to 1, which it never does. The correct test is
to test not equal to zero (!= 0).
Merge pull request #128 from Frassle/half-fix

Fix a bug in single->half conversion.
Merge pull request #127 from thefiddler/apitest

[AL][ES][GL] Add API compatibility test
[Bind] Use byte for GLboolean return types

GLboolean is typedefed as an unsigned char.  It appears that `[return:
MarshalAs(UnmanagedType.U1)]` is ignored in calli p/invokes, so we need
to take care of this ourselves by emitting byte instead of bool for the
p/invoke signature. The public API remains unchanged.

Fixes issue #129.
[Rewrite] Implement byte -> bool marshalling

Since GL_TRUE and GL_FALSE match .Net true and false (1 and 0,
respectively), we can simply reinterpret the byte value as a bool.

In the future, we could issue a `(if value == 0 then false else true)`
statement for added safety, but this does not appear to be necessary
right now.
[Bind] Fixed a System.FormatException
[ES][GL] Regenerated bindings
Merge pull request #132 from thefiddler/fixbool2

 Fix bool return types