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.
Don't trap on signed int overflow (-fwrapv instead of -ftrapv)

this option makes clang insert an UD2 (causes "illegal instrction"
error) when a signed integer overflows.. I'm not sure we want that.

On the one hand, int overflows for array indexes and similar are bad..
but e.g. for the seed value of a RNG they're ok.
(But then again one could probably use unsigned ints for the ok cases)
Furthermore I guess that -ftrapv causes overhead for the checks.
compiler refinement flags are for OpenTechBFG code only