Reorganized/removed the common/boilerplate code.
Added binary string support to hash and hmac builtins.
Added tests for new functionality.
I've been working on this project too long.
Updated the documentation.