Rethink workspace organisation.

Workspaces are now one-dimensional lists inside categories, which are
one-dimensional lists on their own.
Monitors focus on workspaces, but keep category informations for them.

Reduce locate() functions to 2: one for locating everything "sane", and
one for locating workspaces in monitors and/or categories.