Apply all the clang-tidy modernize-* fixes
Pass the shared_ptr by reference, to avoid useless copies
Remove the embedded sha1 code, and use one of botan or gcrypt
This adds a hard dependency on one of Botan or gcrypt. Botan is already a
recommended dependency, and gcrypt is probably packaged almost everywhere,
so this should not be a big deal.
ref #3241
Add some missing includes
fix an “unused parameter” warning
Fix some little compilation errors with some configs, from last commit
Support the ident protocol
fix #3211