Stricter C warnings: fix and add them to defaults+CI
I tested this still builds with gcc 6, gcc 13, clang 7, clang 16,
so I'm relatively confident that they won't complicate building too much – including cases that we do not maintain. But the meson change could be deferred to 6.x. (I see no reason to defer the fixes themselves.)