Improve handling of closed windows
A layer shell window can request a screen edge without having a chance to map the surface. In that case, no Workspace::windowRemoved() signal is not going to be emitted because no surface has been mapped. Perhaps it needs some re-wiring, but on the other hand, it is also more reasonable to monitor Window::closed() signal.
With this change, the ScreenEdges manager will reject any request to reserve a screen edge for a closed window. And in addition to that, the ScreenEdges will unreserve screen edges when the window is closed rather than when the window is unmapped.
(cherry picked from commit cadf16b1)