Reset password functionality

This PR integrates the reset password functionality. The workflow is as given:

1) A user create a new reset password request through a simple form (should we provide this one ? Basically, it's just an email… so I'm not sure).
2) The user calls the "createResetPasswordRequest" of the ResetPasswordService. This will generate a new unique token, that is valid only for a given amount of time (this can be configured through the "token_validity_interval" options).
3) An event is triggered, which allows user to get the resetPassword entity, a send a mail to the user, with a link that allow to reset the password). The link send to the user must contains email and token (either through GET parameters or route params… does not matter as we do not provide controllers).
4) The user follow the link, and programmer must call the "isTokenValid" by giving the email and token. This method check the validity of the token and return true or false.
5) If true, a new form can be shown with password (should we provide this form ?)