Use version 20 which is the current latest.
Fix bug clang-tidy found if reading the save file fails.
Format code per clang-format-20
I surpressed all new warnings in clang-tidy but we will probably want to
enable and fix some of them.
run-clang-tidy is used instead of calling clang-tidy directly in order
to automatically pull all source files.
Applied IWYU recommendations (mostly).
I deviated on libraries, it always wanted me to include the inner headers
for SDL, ffmpeg, etc. but the definitions were normally expected to be
exported by a top level header. wxWidgets was particularly problematic
since it wanted me to use the gtk specific includes instead of the
generic ones.
I do not intend to add include-what-you-use to the CI/CD pipelines at
this time but some pragmas were added to the code to make it report
somewhat cleaner.
Currently Corsix-TH only uses hardcoded CORSIX_TH_INTERPRETER_PATH if no
--interpreter option passed. Search more locations (including the working
directory and the program directory where corsix-th exists) for
CORSIX_TH_INTERPRETER_NAME (i.e. CorsixTH.lua).
Partially address #1569 so the working directory does not have to be the
program directory.