Authentication

Allow users to be created, modified, log in, and log out.  All of this interaction is done via the JSON api and stored in a mongo database.

This covers authentication at the server level.  There will be another branch/pull request for the front-end part of the authentication.