Modified cohorts module to support the new workgroup type

This PR contains the addition of a new cohort type: workgroup. This type can be used to create various cohorts. To give you more context, this is used to create group projects between students, so they can also have a private/cohorted discussion in the unit.  Some detials:

* The current behavior of edx cohorts has not changed. It remains the same as before. All functions are using the CourseUserGroup.COHORT type as default.
* If we want to interact with a different type of cohort, we need to specify it with group_type=CourseUserGroup.WORKGROUP with the needed function.
* A user can now be in multiple cohort, ONLY if we specified it explicitly with the allow_multiple parameter of the add_user_to_cohort function. This shouldn't be used with the normal COHORT type, but might be for other types.
* The get_cohort() behave the same as before and will return only one user cohort. If you need to get multiple cohorts, you have to use this function with allow_multiple=True.
* In get_cohort(), auto_cohort is only supported for normal course cohort. (type COHORT).
* A new function is available: remove_user_from_cohort(), which is also used in views.py 
* We can use the type CourseUserGroup.ANY where appropriate to get cohorts of all types and not only from a specific type.

cc @antoviaque @jimabramson @gwprice @chrisndodge 

Let me know if you have any comments.
We *can* have more than one group project per course. For each user, they can only be associated with one workgroup per course which can have a connection to only one group project. For a single course, many workgroups may be associated with that same group project.

@aboudreault - I believe  that the cohort and workgroup will map one <=> one.
@antoviaque, @mattdrayer - I agree that enforcing this on the model would be ideal