Implement Mouse.GetCursorState()

This PR implements Mouse.GetCursorState(), which returns a MouseState representing the state of the visible desktop cursor. It also significantly improves mouse behavior on X11.

With this PR, we now have three separate ways to acquire the mouse state:
1. `OpenTK.INativeWindow.Mouse*` events. These events are delivered in the client coordinate system of the INativeWindow. Pointer acceleration is applied. Resolution matches that of the monitor (typically 96-200 DPI.)
2. `OpenTK.Input.Mouse.GetState(int)` to poll the low-level hardware state in the native coordinate system of the mouse device. No pointer acceleration is applied. Resolution matches that of the hardware sensor (typically between 200-1600 DPI.)
3. `OpenTK.Input.Mouse.GetCursorState()` to poll the high-level cursor state in the desktop coordinate system. Pointer acceleration is applied. Resolution matches that of the monitor (typically 96-200 DPI.)

This API is required for https://github.com/mono/MonoGame/issues/2464