Add base support for cohorted group configurations

TNL-649

Introduced a new scheme field to user partitions that controls how a user gets assigned
to one of the partitions groups. The default scheme is random, but the next step will be
to introduce a new scheme that will assign the user based upon the cohort they belong to.
i'm in favor of this proposal.  i'd prefer if the pluggable partition service didn't have to make assumptions about the lifecycles of the data exposed by the plugins.

the one downside i see is that when you have a "dynamic" partitionscheme, you'd potentially have opaque side effects of when using _get_group, which i think could be addressed by renaming to `_get_or_create_group` which at least spells out what might happen.