[X11] Added dllmap for Mac OS X (XQuartz)
[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
[X11] Match win32 wheel coordinate system

OpenTK uses the win32 wheel coordinate system, where
(+h, +v) = (right, up). XI2 uses (+h, +v) = (right, down)
instead, so we need to flip the vertical offset.

Fixes issue #133 and https://github.com/mono/MonoGame/issues/2686
[Mac] Match win32 scrolling coordinates
[Mac] Add note for higher precision pixel scroll
[Mac] Fix Mouse.GetState() h-wheel

External mice will now report horizontal scrolling in the low-level
`Mouse.GetState()` API. The touchpad apparently creates an emulated
mouse device that does not report horizontal wheel scrolling events.

Touchpad support probably requires a proper multitouch implementation.
[X11] Implement support for XQuartz (X11 on Mac)
[X11] Check before monitoring /dev/input

This avoids a crash on non-Linux systems that do not support /dev/input.
[X11] Throw exception if GLX is not supported

You cannot create an X11/OpenGL context without the GLX extension.
OpenTK will now throw a `NotSupportedException` when this condition is
encountered.

In some cases, it may be possible to enable the EGL backend by passing
`GraphicsContextFlags.Embedded` to the `GraphicsContext` constructor.
[X11] Added glXQueryVersion DllImport.
[X11] Construct X11 Factory first if enabled

This allows us to use X11 on Windows and Mac, if explicitly requested
by the user via `ToolkitOptions.Backend`.
[X11] Remove unused XCreateWindow overloads
[X11] Send ClientMessage to exit input event loop

To do that, we need a custom InputOnly window. This window is only used
for receiving the exit ClientMessage - XI2 input is still received
through the root window.

Fixes issue https://github.com/mono/MonoGame/issues/2711
[Convert] Workaround for broken names with spaces
[ES][GL] Synced with June 2014 specifications

This introduces support for the following extensions:
- EXT_geometry_point_size
- EXT_primitive_bounding_box
- EXT_texture_array
- EXT_tessellation_point_size
[ES][GL] Regenerated bindings
Fixes bugs in String marshalling.

Fixes two issues:
1. FreeStringArrayPtr used the wrong variable in the offset to
ReadIntPtr causing an access violation.
2. Better cleanup of memory in MarshalStringArrayToPtr when any alloc
fails.