Moderrnize, get rid of boost
- Use c++20 features like
std::filesystem,std::format,std::string_view - Get rid of boost and put it where it belongs (the trashcan)
Important note: GCC libstdc++ does not yet have support for std::format, so ideally use Clang libc++ instead
Looks like C++20 is too recent for this project, unless you want to try and make it work in GitHub Actions. If you do, I'd also appreciate splitting this PR into multiple to ease review (one for filesystem, another for fmt, another for cxxopts, etc.) and using spaces (not tabs) for indentation ;)
Also, I don't really like the idea of having our own implementation of SHA1; will potentially require SHA2 in the future too if BitTorrent v2 is to be supported...
Most of the changes proposed in this PR are now covered in main so I'm going to close it. If you feel like addressing the rest in more focused PRs, I'd be glad to review them.