backend: Clean up slightly
cursor: Remove cursor tracker from API
cursor: Make load_cursor_on_server public
display: Remove grab_xwindow from the public API
display: Always grab the root window

This grab needs to move to the backend, where we won't be able to
discriminate between different windows
display: Remove the screen from set_grab_op_cursor
cursor: Save the original MetaCursor a cursor came from

So we can recreate it as a server-side cursor
display: Clean up set_grab_op_cursor
display: Pull the grab cursor from the cursor tracker

This might look silly, but just wait...
backend: Add grab_device / ungrab_device

This makes sure that we take active grabs on the correct connection.
Passive grabs are still broken.
x11: Make sure to handle RANDR events from the right connection
monitor: Remove handle_xevent as a generic method