Reset password

Implemented the password reset functionality. Resolves #22.
These password-related concerns should move to `PasswordReset`.