Add user endpoints

This is a continuation of #128 with some cleanups, and adding extra functionality.

Insanely huge props to @tobych on this one; he's done almost all of the heavy lifting here.

Things left to do:
* [ ] Implement `/users/me`
* [ ] Unify user update/insertion code
* [ ] Add missing fields to `update_user`
* [ ] Audit everything for security
* [ ] Replace `Posts::prepare_author()`