[Expo] Add zoom to selected workspace, gradual zoom, improve mouse-wheel scroll, and much more.
[Multi-monitor] Workspace-switch animation should not let windows belonging on different monitors swoosh by.
[Multi-monitor] Show workspace OSD individually on each monitor
and take workspaces-only-on-primary setting into account when showing workspace OSD.
[Window Manager] Avoid "Window manager warnings" when shifting a window from one workspace to another.

Avoids the following:
Window manager warning: Got a request to focus 0x1c24097 (Terminal) with a timestamp of 0.  This shouldn't happen!
Window manager warning: CurrentTime used to choose focus window; focus window may not be correct.
[Window Manager] Also let windows that are on all workspaces participate in the workspace-switching animation.
[Window Manager] Handle workspace-shift hotkeys on key-release instead of on key-press.

This makes it possible to support multiple rows of workspaces, by
differentiating between short and prolonged key presses:
a short press of Ctrl+Alt+Up or Ctrl+Alt+ Down opens Expo or Scale,
whereas a prolonged key press shifts workspace-up or down.
[Rows of workspaces] Implement a configurable number of rows of workspaces.

This requires a fixed version of Muffin to work, otherwise shifting
up and down between rows will not work.
[Rows of workspaces] Move workspace-layout calculation to Main.
[Expo] Ignore current workspace layout when zoomed In.
[Connector] Make it possible to tie a connection or a connector to an object, automating disconnection when the tied object is destroyed.
[Rows of workspaces] Add a simple workspace-shift-feedback OSD popup.
[Window Manager] Make sure that workspace-shift animation does not interfere with "only use workspaces on primary monitor" setting.
[Rows of workspaces] Don't show workspace grid if only one workspace.
[Rows of workspaces] Make workspace grid reflect workspace-row orientation (top-down or bottom-up).
[Window Manager] Extract-method refactoring.