[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
Merge pull request #120 from thefiddler/xcursorfix

[X11] Improve mouse input
[X11] Added XKB bindings
[X11] Use XKB for layout-independent input

The code will fall back to core X11 if XKB is not available.
[X11] Rebased on develop branch