Reset password

Implemented the password reset functionality. Resolves #22.
I feel like this is a sign the class is doing too much.  But I do see the thread.