Reset password

Implemented the password reset functionality. Resolves #22.
privatized!