Password reset

Add ability for users to reset their passwords via email. Also allows users to edit their email and passwords within the app. Resolves #13 .
I like both the change to `update_user` and letting `user.update_attributes` handle the validations, which means I should be able to take out `invalid_password?` altogether.