Use wlr-foreign-toplevel-management instead of private protocol
Introduces PhoshToplevelManager and PhoshToplevel classes for managing and representing toplevel surfaces. Thanks to that: - it doesn't match the window to close via its title or app id, always trying to close the correct window instead - it removes the window from the overview only after it really got closed - which is especially noticable in case of windows that refuse to be closed - it updates the list automatically as the changes happen, without having to close and open the overview back again Closes #37