[Rewrite] Fixed 2d/3d arrays on .Net

Mono can use ldlen and ldelema on both 1d arrays (vectors) and 2d/3d
arrays. However, .Net can only use these instructions on 1d arrays -
higher rank arrays must use get_Length and Address explicitly.
[X11] Fixed GLX extension loading

GLX is now using the new extension loading mechanism,
and the entry point names now much the available slots.
[X11] Correct Glx.*.SwapInterval definitions

Improved error checking means we are no longer crashing when
SwapInterval is not available.
[OpenTK] Do not crash when no monitor connected

NativeWindow now checks for a non-null device before attempting to
access its properties. Affects
https://github.com/mono/MonoGame/issues/2416
[Rewrite] Removed unused conditional.
[X11] Fixed Cursor when CursorVisible = false

Setting Cursor will no longer override CursorVisible.
[X11] Fixed cursor position when CursorVisible becomes true
[X11] Improved CursorVisible = false behavior

We now use an XGrabPointer to confine the cursor to the window,
instead of the XWarpPointer hack. Fixes issue #28 and #36.
[Platform] Fixed OnMouseDown/Up events for secondary buttons
[X11] Implemented high-resolution scroll events
[Input] Renamed MouseScrollWheel to MouseScroll

This better describes the functionality of this structure.
[X11] Warn when XI2Mouse is not supported.

Without the XI2 extension, mouse support will suffer significantly.
More specifically, low-level mouse events will not be available.
[X11] Fixed GetCursorState() after SetPosition()

The new position is now immediately reflected in GetCursorPos().
[X11] Removed unused warp detection code
[X11] Removed stale comment
[X11] Removed unused SetCursor() function
[Mac] Explicitly retain/release CocoaWindowInfo instances
Added GameWindowFlags.FixedWindow to allow for fixed border SDL Windows
[X11] Added XKB bindings
[X11] Use XKB for layout-independent input

The code will fall back to core X11 if XKB is not available.