Draft: Add prepare compositing step
With layered compositing, it's reasonable to split a compositing cycle in two steps - prepare and present. The prepare step is used to negotiate how output layers map to hardware planes. The present step applies the requested step.
This change adds the prepare step in order to start laying the foundation needed for the compositor to start using output layers.
It squashes many redundant atomic test-only commits when moving the mouse. But it's also somewhat controversial because it makes implementing async cursor updates challenging. hwcomposer addresses that by providing a separate api for async cursor updates, borrowing that idea in kwin stands on the table.
Needed to unify cursor layer abstractions in the drm backend, as is, moveCursor() and setCursor() don't fit well.
Draft: Needs to be refactored further so there's clear separation between cursor layer updates and testing pending configuration