Hand-check unique_together constraints with null values.

Django has a bug where unique_together constraints for foreign keys aren't
enforced properly when one of the foreign keys is null (well, technically it's
a database bug). This meant that users who weren't using local sites could
create Groups or Repositories that had conflicting names and paths.

This change implements the `clean()` method for the Group and Repository
models. This method is automatically called from ModelForms, which means the
admin site is fixed automatically.

The web API has a similar issue, but only for repositories. The Group
create/update methods had an implementation which already checked for these
sorts of problems. I haven't implemented a unit test for the repository API
changes because this change is currently on 1.7.x, but I'll add it to the to-do
list for master.

Testing done:
* Tried to create a Group with a conflicting name from the admin UI.
* Tried to create a Repository with a conflicting path from the admin UI.
* Tried to create a Repository with a conflicting name from the admin UI.
* Tried to create a Repository with a conflicting path from the web API.
* Tried to create a Repository with a conflicting name from the web API.
* Ran unit tests.

Fixes bugs 3066, 3093.

Reviewed at https://reviews.reviewboard.org/r/5274/
Allow superusers to access private repositories.

Trivial patch to allow superusers access to all repositories.

Fixes bug 3118.