Finished implementing password reset and thorough tests