added forgot password  functionality, sends out email, generates a hash