Hash Saga Part 7 (MD5 support + docs)

Dependent on #121, #123, #124, #125, #128 

This PR also changes BaseHash into an abc.