Switching from using PBKDF2 to Keccek sponge.

It seems like a better fit for this exact application.

Speed can still be scaled by selecting an amount of extra null bytes to absorb
into the Keccek sponge.
Fixing the distribution of generated passwords.

With previous implementations, the distribution of generated passwords for a
given schema was uneven. This was due to that passwords were encoded from some
value modulo the number of possible passwords when the maximum value was not
necessarily a multiple of the number of possible passwords.

Now, with Keccek, it's easy to just squeeze bytes from the sponge until the
value is less than the maximum encodable value, discarding any values that
aren't.