Fixes a hybrid stereo encoder issue

This was causing periodic glitches in the right channel in hybrid mode.
Adds a ramp up in the SILK prefill

This improves quality of CELT->SILK switches by not having the SILK encoder
attempt to encode a discontinuity. Overall, it's a small PQ improvement,
confirmed by some listening.
Fixes a minor CELT->SILK switching glitch in the decoder

By not reinitializing the stereo state during a switch, the old stereo
memory would create a false impulse (i.e. single sample) in the decoded audio.
This change affects the normative part of the decoder. Fortunately,
the modified decoder is still compliant with the specification because
it still easily passes the testvectors. For example, for the float decoder
at 48 kHz, the opus_compare (arbitrary) "quality score" changes from
from 99.9333% to 99.925%.
Fixes a SILK fixed-point encoder issue reported by Cliff Parris <cliff@espico.com>
Moves analysis to the beginning of opus_encode()
Makes analysis usable for all frame sizes
Running transient_analysis() even for 2.5 ms frames

This means 2.5 ms frames can now use a higher bitrate for transients.
Makes opus_demo rubust to the encoder using variable frame duration

Also, the encode+decode mode now produces an output of the same size
as the original.
First attempt at varying the frame size depending on the audio (float only)

The search is based on minimizing the bitrate increase due to transients
by considering we can reduce the "transient boost" by reducing the frame
size, at the cost of increasing the normal overhead.
Re-enable analysis for 40- and 60-ms frames
Makes variable framesize less aggressive at lower rates
Multistream support for variable frame duration

Also fixes a bug with stereo streams where the initial memory was only
using the left channel.
Better handling of the multistream bitrate

Now supports OPUS_AUTO and OPUS_BITRATE_MAX
No need for extra_buffer anymore
Making multistream variable duration work for both the float and int API
Adds code to revise the transient decision using the band energy

Detects a transient when the average band energy jumps by more than 6 dB
between two consecutive frames. This fixes some undetected transients on
Gainless' Muse_Breaks_Rmx sample.
Moves mono downmixing and upsampling to the compute_mdcts()
Fixes two bandwidth decision issues

1) In cases where the SILK desired bandwidth went down, then quickly up, we
count get stuck in a mode with the LP variation going the wrong way.
2) Bandwidth detection can no longer force SILK to go below wideband to
avoid switches that require redundancy.
Fixes a bug introduced in 851f803
Adds support for delayed decision

Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION,
with new API.
Also moves up the analysis to avoid having to do int->float conversion
on large buffers.