Optimizes encoder NaN detection and clipping by only running them when needed

NaN detection should now be able to catch values that would create NaNs
further down.
Changes ABS16() and ABS32() to use fabs() in the float build

gcc is better at optimizing it than the ?: version
Replaces inline copies and initialization with OPUS_*() macros.

This is a bit faster at -O2 because memcpy()/memmove()/memset() are
vectorized. The code is also cleaner.
Defining celt_inner_prod() and using it instead of explicit loops.

Also adds an SSE-optimized celt_inner_prod().
Using celt_inner_prod() for input sanity check.
s/MAX16/MAX32/ in transient_analysis()

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Makes silk_inner_prod_aligned() use celt_inner_prod() in fixed-point.

Should make it easier when writing assembly.
Using celt_inner_prod() in compute_band_energies()
Making NaN detection more robust to -ffast-math.
Using OPUS_COPY()/OPUS_CLEAR() in the decoder too
Add a reminder to bump the version.mk version.

We released 1.1 with 1.1-beta as the hard-coded version.
Hopefully this only affects people doing their own windows builds
 without the git tools available.
Thanks to Ron Lee for the report.
More NaN hardening in the analysis code
Fixes code that was doing arithmetic on a void pointer.

Thanks to Kevin O'Connor for reporting this.
Annotating pointer arguments with OPUS_RESTRICT and const
Removing indirections
Minor fixed-point accuracy improvements that were completely free
Remove useless code in alloc_trim_analysis()
fixed-point: adds rounding to some shifts to eliminate bias

This reduces the peak decoding error by removing small (inaudible) spikes in
the error at the frame boundaries. These were due to the frequency-domain bias
ending up as a small pulse in the middle of the IMDCT overlap. None of this
was ever audible, but fixing it is still cleaner.
fixed-point: slight (but free) accuracy improvement in compute_band_energies()

Also moves the VSHR32() condition outside the loop just in case some compilers
don't optimize that properly.
configure.ac: fix bashism in ARM optimization handling

Breaks configure when /bin/sh isn't bash with:

configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution

Fix it by using the %% expansion to remove everything from the first
space instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>