Improve mouse input on Linux/X11

This PR significantly improves mouse support on Linux/X11.

- Setting a `Cursor` no longer overrides `CursorVisible = false`
- It is no longer possible to click outside the `GameWindow` when `CursorVisible = false`. This also removes a large number of related hacks.
- Secondary mouse buttons are now correctly reported
- `CursorVisible = true` will no longer reset the mouse to the center of the `GameWindow`
- `GameWindow` now supports high resolution scroll events
- `GameWindow` now respects the scrolling direction preference of the user

Fixes issue #28 and #36