Fix a few typos and add a backport (compat) for hex2bin()
Add a backport (compat) for quoted_printable_encode()
Fix potential bugs in password_hash(), CI_Encryption

strlen(), substr() are not byte-safe when mbstring.func_overload is enabled
Continuing from previous commit ... use CI_Encryption::substr()