Simplify hashing

Would be nice to get some comments on this.

* Kill OnPassCompare() with fire
* Move HMAC and password comparison out of m_password_hash, into the core
* Add a Compare function to hash providers, as == does not do it in the case of e.g. bcrypt
* Add a bcrypt module
* Rename functions to be more intuitive
* Generate() takes a parameter to decide of it returns it's RAW format, e.g. for storage, or it's printable (default param).
* Kill sumIV() - this isn't used anywhere in the source anymore
Pass these to the constructor instead.