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.
@aboudreault I'll let @martynjames double check what I write, but my understanding is that no, a user would never be in multiple cohorts on the same course.

The subtlety here is that there can still be different projects on a single course. A user would only be allowed to belong to a single workgroup across all projects from that course, but here we only added a check to ensure that the user doesn't belong to another workgroup on the same project. If he was already in a workgroup from another project on the same course, we wouldn't detect it, which would result in the user belonging to multiple workgroups on the same course.

Does that make more sense?