Update MD5.cpp

Original has a bug in make_hash; the digest its returns is a stack variable.  If you do d=make_hash then use the stack and then try to deference d, it may be corrupted.  I've changed it to alloc the hash but the caller must subsequently free() it.