Password re-work

- New ForgottenPasswordResponseMaker
- Moved several common methods from PasswordChangeResponseMaker to
UserResponder so they can be re-used
- Moved SessionsResponseMaker::make() to top of the script
- New UserResponder to hold common user methods
- New EmailValidator
- Re-worked userController to use IOC bindings with app::make
- UserController now checks for query param = forgotten
- New IOC bindings in support of password work
- New UserRepository method to generate and store a new password on
behalf of the user