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