Allowing same Authenticate object to be setup with different settings

Useful when you are migrating users from one type of hashing to another, or have users stored in different sources, etc.

I targeted 2.4 because it is where `PasswordHasher` was introduced, and it actually broke a 2.3 application I had.
Let me know if this is good for 2.4 or should be on 2.5.