Fix cursors with overlapping outputs
Some backends have been using surface damage to determine when the mouse cursor needs an update - this is no longer viable, since the first output to repaint will consume the surface damage and convert it into plane damage.
This isn't exclusive to overlapping output configurations, as the cursor view may be present on two outputs when it is on the boundary between them.
This can be reproduced by running a client (I tested with weston-terminal) that is visible on two displays. Position the mouse cursor so that it is present on both displays, and move it vertically from outside of the application to the inside of the application. This can cause the cursor to fail to change when entering the application.
This series attempts to fix up plane damage so it is usable by backends, and use it from the drm and vnc backends to do proper cursor updates.
I've added the 13.0.0 milestone, as the bug was introduced by work during this release cycle.