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 would probably just have the schemes act as independent django apps. So, they'd define their own models to store the data in.

The tricky bit, I think, is analytics, but it seems like if the analytics just record which partition the user is in across all of the partitionings (by querying the individual partition schemes), then that would be a good way to record the relevant data. For the RandomScheme, we might have to accept a dependency on the UserTags service (or Model classes) for now, to maintain backwards compatibility.