Fix/suppress most gcc and clang warnings, except unused stuff

the -Wunused warnings should be fixed in a separate commit because
it's so fucking many

There's also some warnings about usage of abs() for floats left.
abs() takes and returns int and I think usually that's not what
you want for floats, but maybe in some cases the implicit rounding
is desired?
That must be checked and tested very carefully and then either be
changed to use idMath::Fabs() or add an explicit cast to int.