added md5 implementation straight port from c

first iteration of Md5 implementation. This is an almost verbatim port of the [c version on wikipedia](https://en.wikipedia.org/wiki/MD5#Simple_implementation).
The idea is to make it more idiomatic Rust in future iterations, but please add comments to this implementations if you wish, and I'll try to incorporate them now.
No you're right, it's not strictly needed. It's just that this program is using a few different fixed-length arrays of various types (u8, u32) and lengths and I found that having the type specified explicitly was helping me scan more easily what was supposed to go in what array. 
In more idiomatic Rust this would probably be refactored in shorter functions and maybe more descriptive types, but with this long md5 function things got hard to debug without some types...