implement multi-row-aware left/right cycling through workspaces

cycling on up or down is not taken care of