Add role-based authorization

This is still WIP.  Don't merge as-is.  Adding a user doesn't work through browser, but does work in repl.

This adds a :roles field to user objects, and a few new endpoints accessible only to certain roles.  Admins have access to /admin and /admin/register to create new users.  Moderators have access to /moderate.