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.
The user can only be in one workgroup per course - I think that helps. Although this is enforced by the admin piece of the client application, and the data model seems to be able to support the user being in multiple workgroups if desired. 

The way that this is handled within the group-project XBlock:
There is only one workgroup per student per course
This references a Project object which associates a single content_id (at the chapter/section level) within a course_id. This is the group-project.
Within the chapter there may be several group-project xblock's each being the first child of a sequential/subsection (by convention), so each sequential/subsection represents a group "activity" within the project.

As a consequence, the group-project xblock simply loads the first workgroup for the user for the course - it is able to do this by passing the course_id as a querystring parameter to the user api workgroup listing.