Group add/remove user

This is also based off of @gsilvis's rework of model.py, which should be merged in first.

There's a lot of boilerplate here, we should think about ways to cut down on it.