Restructured to allow for better verify implementation.

Also added scrypt and SHA2 variants of PBKDF2.