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.
@cpennington Thanks for the links. This is indeed a much better way to manage plugins. I've rewritten the code to use them, but now I'm having difficulty working out where to register the entry points. The only ```setup.py``` I could find was at the root of edx-platform but it doesn't seem to pick them up. What is the right way of doing this? 

Would it be possible/good to programmatically add the random scheme to the manager? That would mean that it would always have at least that one scheme, which would help with testing as well as initialization. Or is there a cleaner way to manage this?