Forgot Password flow - includes some refactors so that passwords are properly validated, and validated consistently.  Also moved password encryption to a more logical location - when converting to a database object.