Various xdg_popup fixes
Mostly cleanups but there are bug fixes too:
- If a popup before constraining is placed outside of the work area, we'd constrain with undefined data, leading to (in non-debug builds) insane popup positions (
constraints: Don't use intersection when sliding with custom rule
). - Do some sanity checking on the constrained popup position, and unmap if it was insane (
window: Unmanage rule placed window if ending up outside of parent
)