Fix placement of windows on disconnected outputs
If an output is disconnected, the Workspace will update the Toplevel.output property for all windows that are on that output, then it will call AbstractClient::checkWorkspacePosition() to fix window position.
That may result in some windows partially sticking outside visible area because AbstractClient::checkWorkspacePosition() has no idea what output the window was.
This change addresses that problem by delaying updating the Toplevel.output property so AbstractClient::checkWorkspacePosition() could pick better window placement.