Implementation of OpenBSD style bcrypt function.

Supports 2, 2a, 2b, 2y variants, but not 2x or 'safe 2a' from openwall crypt_blowfish.
Passwords from 0 to 72 bytes supported.
Cross tested with JBCrypt and crypt_blowfish.
Enforce key sizes for Blowfish (32 .. 448 bits) but provide factory/constructor for legacy/unrestricted operation.