Add moving window to other workspaces.

Requires some minor modifications (generalisations) of the attach() and
detach() function, but goes quite smoothly.