Newer versions of MSVC are unhappy with the strategy of the build
environment redefining "inline" (even though they don't support the
actual keyword). Instead we define OPUS_INLINE to the right thing
in opus_defines.h.
This is the same approach we use for restrict.
This also adds some extra casts to shut up compiler warnings
reported on MSVC 6 where there is implicit truncation for the
arguments of bitexact_cos().
Lacking access to CLZ/BSR will make the code a fair bit slower but
that is better than failing to compile.
__GNUC_PREREQ is generally defined by glibc; ecintrin.h
was checking to see if it was defined before use for
portability to non-glibc systems. However, we now have
a fallback definition in arch.h.