(NC-145) Hierarchy Validation

These commits implement hierarchy validation whenever a new group is inserted or a parent link is changed. They also unify the error responses to contain an object with `:kind`, `:msg`, and `:details` keys.

Notably absent from the PR right now are updates to the documentation for all the things I changed. Those are forthcoming, but I figured I'd throw up the PR now so review can start, and add those doc changes in when I finish them (likely tomorrow).