Fix gh #6; add tests.

In commit 64f737ec4b74cd1e1e3f2bfa909bd89e8c8b5142 (version 1.0.1)
the RIPEMD hash was broken by moving a variable initialization out
of a loop.

In commit e94f16a88496a3a23500af6f3f25467d6335eaa0 (version 1.0.2)
the RIPEMD hash was further broken when "32" because "3" in binl2rstr.
Further, a precedence bug introduced here broke utf8Encode(), which
caused most hashes to return fixed values.

Add tests while fixing the breakage to prevent future regressions.
Correct HMAC documentation error; add test vectors. (closes gh #8)
Execute permissions on bin/hashes.js (closes gh #5).
Merge branches 'gh-5', 'gh-6' and 'gh-8'