Features/111 signupform cleanup

This should cover everything in #111.

Most of this was done by extending the User model a bit.