weston-desktop: Support constraining popups to monitor region
Doesn't yet deal with work area (monitor area excluding panels etc), or reconstraining while moving, but it's a start.
It's more or less based on the mutter implementation. While the mutter implementation is GPL, it was authored by me, thus grant permission to relicense to MIT.
Tested briefly with gtk/tests/testpopover.c
in gtk4.