Prepare for dmenu, remove unnecessary WSD code.

... in fact, a bit too much, since selecting a workspace on the WSD map
doesn't work anymore. But it'll get re-added.
Integrate dmenu.

It still crashes upon non-zero termination of dmenu.
WSD => WSM.

It's no longer a dialog/menu; it's just a map.
Make workspace selection work again in WSM.
Fix WSM crash issue.

Kept crashing when selecting current workspace from WSM when the current
workspace was empty. Problem was that upon leaving the workspace, it was
destroyed, but since we kept coming back (and before it existed), we
were using a non-existing workspace.

... sounds more complicated than it really was, but anyway, if you are
really interested in what was the problem (which I highly doubt), you
may ask me.
FIXED: Floating clients stayed hidden upon reentering a WS.

arrange() only took to account the tiled clients.
Merge branch 'dmenu'.

Workspace selection by name is handled by using dmenu now.