[ELY-26] Transition the realm API to use a RealmIdentity which now encapsulates the identity specific operations.
[ELY-26] By switching to a RealmIdentity which defines an identity for a specific realm we no longer need to combine a Principal with a realm name in this way.
[ELY-26] Minor typo.
[ELY-39] Ensure algorithm names come from the password interfaces and not the implementations.
[ELY-40] Split out the Base64 handling into it's own utility class.
Javadoc claims a NoSuchAlgorithmException will be thrown, not a return of null.
Elsewhere we expect the service type to be 'PasswordFactory', this does appear to make more sense than 'Password'
[ELY-8] Implement the BSD variant of Unix DES Crypt
[ELY-44] Adding a TrivialSaltedDigestPassword implementation, spec and interface.
[ELY-44] Add a test case for TrivialSaltedDigestPassword
[ELY-44] Minor visibility change and additional javadoc to describe the supported algorithms.
ScramDigestPassword implementation (SHA-1 and SHA-256)