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 ordering seems odd, though. I would have expected something like:

    if value["version"] == 1:
        # implement version 1
    elif value["version"] == 2:
        # implement version 2
    else:
        # Unexpected version