Optimed MD5 calculation to be blockwise as bytewise operation is slow

I've been working with quite big files and found that the bytewise operation on IOStreams is quite slow. I here submit a block wise operation on IOStreams. 

I'll submit a separate pull request for the trunk.

Br Alexander.