Base class for authentication providers. Provides a constructor which handles
receiving the realm settings and returning an instance of the provider.
Also provides secure password matching which automatically handles crypted
passwords via Crypt::SaltedHash.
Finally, provides the methods which providers must override with their
implementation, which will die if they are not overridden.