Implement scaled/transformed hardware cursors
This series implements the ability to scale and transform cursor images with cairo, allowing us to use hardware cursors on monitors that are rotated or fractionally scaled, reducing repaints of the shell.
We now only fall back to the software/gl cursor if the cursor is visible on multiple monitors with different scales/transforms (so usually only for a few frames when the cursor is moving over the boundary of two monitors).
Tested in a two-monitor setup using various combinations of scales/transforms, with and without
Required for !344