The title for this revision is a bit out of scope, since this revision actually does much more than just "implement emails". What it
also does is refactor the authentication system to have proper _capabilities_ for email in the first place, add a password reset and
post-registration email confirmation feature, and refactor the database models to work with timezone-aware timestamps (trust me, not doing
this would have been a complete pain in the ass).
There are some features implemented in the backend that don't currently have a place in the frontend, mainly resetting your password and email
when you're logged in. This would go in a "user settings" page, which we don't have yet, and I want to wait until we do and until we put some more stuff on there
before I get to that.
Test Plan: You have to reset your database (mix ecto.reset) to use this, unfortunately.
Differential Revision: https://git.tometo.org/D24