(NC-188) Begin the Great UUID Reorganization.

Change the database to make the group ID the primary key, rather than
the name. Accordingly, change the foreign key links to refer to group ID
over group name. Change the Group schema to require the :id key and
change the type of :parent to a UUID.

THIS BREAKS ALL THE THINGS. If you are git-bisecting, you should skip
all the NC-188 commits from this one up until where the branch is merged
back in.
(NC-188) Remove *-by-name/id storage methods.

Replace get-group-by-name/id and delete-group-by-name/id with get-group
and delete-group, respectively, that only take ids. Modify http.clj,
postgres.clj, and their tests to no longer refer to the old methods, so
that they'll compile, though they're still totally broken.

ALMOST ALL THE THINGS ARE BROKEN! Most acceptance, http, and postgres
storage tests will fail, though the rest should be fine. If you are
bisecting, you should probably skip everything from the first NC-188
commit up until it gets merged in.
(NC-188) HTTP API uses UUID as sole group key.

Rather than determining whether the group identifier passed in the URI
is a UUID or a group name, the HTTP handler assumes it's a UUID and
tries to parse it as such.

Since the ID is always present in the URI but may also be submitted in
the body, there's a new way for a group request to be malformed: if
these two IDs are different.

All the HTTP tests now pass again, however...

MOST OF THE THINGS ARE STILL BROKEN. The rules, classification, and
acceptance tests still mostly error out. If you are bisecting, you
should probably skip all commits from the first NC-188 commit up to the
merge commit.
(NC-188) Rules use group ids instead of names.

The change is basically just returning the :group-id field of the rule
instead of the :group-name (and changing the schema of apply-rule
accordingly).

LOTS OF THINGS ARE STILL BROKEN. The classification and acceptance tests
still mostly error out. If you are bisecting, you should probably skip
all commits from the first NC-188 commit up to the merge commit.
(NC-188) Fix classification tests.

The tests just had to update their test group to meet the schema.

Change the classification/matching-groups docstring to note that it
returns group ids, rather than names.

LOTS OF THINGS ARE STILL BROKEN. The acceptance tests mostly error out.
If you are bisecting, you should probably skip all commits from the
first NC-188 commit up to the merge commit.