Rework groups

Rework the `User` <=> `Group` relationship to be more flexible.