Reset password

Implemented the password reset functionality. Resolves #22.
privatize some of these methods?