Add failing tests to demonstrate error in md5 hashing

MD5 hashing fails on arbitrary binary data.
Revert to using v2.1 of Paul Johnston's MD5 implementation

This is the same version that has been used by Strophe.js, etc for a
long time, and is known to work well.

Passes tests for correctly hashing arbitrary binary data.
Merge pull request #18 from legastero/master

Fix MD5 hashing on binary data