A recoverable md5 algorithm. Creates an MD5 that can be restarted without reading the entire input again.