Ask for -fwrapv, we depend on it

We want to be sure that e.g., (INT_MIN) - (INT_MAX) is -1, so that encoder
overflows work better.  The C standard says that the result of this
is implentation-defined, and gcc provides -fwrapv to ask for the common
"wraparound arithmetic" behavior.  -fwrapv is in all compilers we are
likely to encounter; the internet says it was added in gcc 3.3.

-fno-strict-overflow prevents the compiler from assuming things such as
`i + 10 > i` always being true.  It's not clear whether -frwapv effectively
implies -fno-strict-overflow (though in this specific case it should,
since -fwrapv defines some values of i for which the comparison is false),
so go ahead and specify it if available; the internet says it was
added in gcc 4.2.
ilowpass: handle s32 overflow better

The conversion from double to int is undefined when the input operand
is out of range; in fact, gcc seems to return INT_MIN in this case.
By casting through __s64, and with -fwrapv specified, we get correct
signed integer wraparound until value exceeds 2^63.
ilowpass: test for wraparound behavior
Merge branch 'ilowpass-wrap' into v2.5_branch