Add email sending and fix user registration

Messages are now sent as emails and users are required to provide an
email on signup.