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.