wayland: Destroy xdg shell clients when corresponding roles are about to be destroyed
This ensures that surface role objects can be still accessed when either XdgToplevelClient or XdgPopupClient is destroyed. As far as I know, it doesn't cause any problems right now, but this makes resource destruction handling consistent, we tend to perform cleanup in aboutToBeDestroyed signal slots as it saves us some nullptr checks.
Edited by Vlad Zahorodnii