Add support for courseware partitioning based on cohort.

@andy-armstrong @cahrens 

suspect i'm going to need to wire something into stevedore - @andy-armstrong ?

please take heed of the notes in the first commit message - there's a database migration needed. 
It's true that we won't expose the ability (at this time) in the UI to link a cohort to more than one partition/group pair, but it seems like a reasonable thing to do. For instance, let's say one partition was around difficulty (groups "easy" and "hard") and one partition was around company ("microsoft" and "google"). You could then want to a particular cohort to see only "microsoft" and "easy" content. 

Just wondering if we should make the database able to handle this now to avoid complicated migrations in the future.