This implements sha1 collision detection, including rehashing for mitigation.
As the code is 1-1 based on the version that git uses, the mitigation
hashes should match as well.
## Limitations
Can only be used with the pure software implementation, asfaiu. The
reason for this is, that the algorithm needs access to all intermediary
states, and so processing 4 rounds at once through the intrinsics will
screw things up.
For that reason I have made it it's own implementation, instead of
adapting the existing `compress` implementations.
It might be possible to add support for the "simpler" assembly
implementations that do round for round processing, but I think this
could be a follow up in the future, if this is too slow for these
platforms.
## Prior art
- Paper: https://marc-stevens.nl/research/papers/C13-S.pdf
- C reference implementation: https://github.com/cr-marcstevens/sha1collisiondetection
- C2Rust translation: https://gitlab.com/sequoia-pgp/sha1collisiondetection/