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.
The way this works in related code is that the xblock services have an internal notion of the current user. I believe that @jimabramson's plan is to do the same with the cohort service, which will have to be plumbed down to be accessible to this method.