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 .
Thoughts on using `find_by!` within the `user` method and rescuing from `ActiveRecord::RecordNotFound` here?  This way, a 404 can be rendered for when an invalid token is given during the edit / update actions and the errors can still be added to base here (and you no longer have to handle `nil`).  This method would then look like:

```ruby
def deliver
  user.save_password_reset_token(token)
  UserMailer.reset_password_email(user).deliver
rescue ActiveRecord::RecordNotFound
  errors.add(:base, 'No user exists with that email.')
end
```