Cleanly support popups in gdk
We should have a gdk concept of popup surfaces, and implement it not just for Wayland. Popup surfaces should
- be treated like toplevels for input and output
- have a transient parent
- be positioned using move_to_rect, relative to the parent
Currently, the Wayland backend uses heuristics to decide when to create xdg-popup surfaces, and the fallback move_to_rect implementation tries to work on any toplevel witha transient parent. We could take the heuristics out of this by introducing a new surface type.