Reset password

Implemented the password reset functionality. Resolves #22.
Though you may still want to have the email sending in the controller -- up to you.