wayland: Add support for wp_transactions

This can be used to implement, among other things, synchronized popup
movement. It works by adding a new surface state fence, sitting in
between subsurface commit management, and the base layer. This means
that subsurfaces commit to the wp_transaction implementation, and
wp_transaction commits to the active surface state. Without a
transaction, the subsurface commits directly the active surface state.

!1342
13 jobs for !1342 with wip/wp-transactions in 23 seconds (queued for 2 seconds)
latest merge request