Base class for authenticators which lookup passwords from a database.
Implementations only need to override the getUser method
and return a populated PasswordUser.
The AuthenticatorList is used to configure more than one authenticators in a
list, each authenticator is tried in turn and if the authentication fails the
next authenticator in the list is attempted.