Draft: wayland/surface: Defer applying state updates until dma-buf file descriptors are readable
This corresponds to when the client drawing to the buffers has finished.
This fixes #1162 if the GPU & drivers support high priority contexts which can preempt lower priority contexts.
 There is one notable exception: The amdgpu kernel driver currently always reports dma-buf file descriptors as readable (unless the buffer is shared with another driver). Kernel patches fixing this are being reviewed; until they land, mutter will mostly continue behaving as before with amdgpu.
Reasons for draft status:
- Some state is not handled fully correctly yet for protocol vs output.
- !1762 (merged) should be merged first ideally, otherwise the early deadline may result in frames getting delayed which would previously have made it in time.
I want to make at least a proof of concept that this transaction mechanism works for the
wp_transactionWayland protocol as well.