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.
style nit: i'm generally accustomed to seeing all-caps variable names when defining "constants" - which for Pythonic purpose really means something that should be treated as immutable after initialization.  Based on usage further down, i'm not sure that applies here.