mattdrayer/api-workgroup-user-check: Ensure no existing workgroup assign...

...ment

In response to PR #4364, this PR introduces a check for a preexisting workgroup assignment.  I opted to handle the assignment validation in the view, versus the model, although I suppose we could shift the logic there if need be.  @martynjames @antoviaque @aboudreault -- take a look and let me know what you think.
We may need a little more - with this, we could have a case where a user is attached to two different projects, but each of these projects could be linked to the same course. That would result in having a user in two different workgroups (and thus cohorts) on the same course. Instead, if I understood correctly what @martynjames said in https://github.com/edx/edx-platform/pull/4364/files#r16244865 , we need to check that the courses of the projects the user already belongs to is different from the course on the workgroup we want to add the user to, right?

Also, the best would be to validate this at the model level instead of the view, to ensure we don't inadvertently go around the constraint in another place. (This can be done with a pre_save signal)