#652. Have a situation where the salt that is generated is random and
stored with the hashed password.  In this case, next time a call to
encodePassword is used a new salt is generated and the password does not
match. Instead, I added a method to customer service called
isPasswordValid that delegates to the underlying passwordEncoder to
validate the password. This is superior to encoding the password
yourself and checking if it is valid. Because in the case with a
randomly generated salt, it will never be.