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.
That is a good question. I originally put it in helpers, but there were Python import circularities that I couldn't resolve. I could have moved more pieces into helpers to resolve it, but it seemed simpler to leave it here.