Workspace-scoped groups

Group names are currently namespaced at the scope level. This means in practice that workspace-specific groups (expected to be the vast majority of groups) need a workspace prefix to namespace them.

In our sprint in Marseille we discussed allowing a nullable FK to Workspace from Group. This can be used for namespacing and included as a prefix in str() representations.

This makes renaming workspaces simpler, and should reduce group clutter.

Notes from Marseille:

Enrico: Group naming constraint (compare e.g. !2174 (comment 645876)) and in general, if I can create a group with an arbitrary name, what prevents me from creating groups named debian_admin or debian_leader? Possible idea: add a nullable FK to Workspace from Group, which is only used for namespacing, and in str() to add it as a prefix This allows renaming the workspace while keeping groups consistent.