WIP: wayland: Synchronize popups with toplevel
If the compositor supports it, use the transactions extension to synchronize the update of the toplevel and all the popups in a popup tree. This works by once a popup is added, automatically create a transaction group (zwp_transaction_v1), where the toplevel and popups are added. Since popups and the toplevel share the same frame clock, if there is a transaction active, commit it at the end of each clock cycle. This ensure that all possible updates has already been committed by every surface in the tree.
Marked as WIP since it depends on a pending Wayland protocol.