finished password reset feature

Added a two-step mechanism to recover an account when a user forgets his password. An email with a JWT is sent to the email to make sure the request is sent by the rightful owner of the account, then a randomly generated password used to regain the account is sent in a second email upon JWT validation.