Adds transcoding of multichannel audio to AC3 for the CoreAudioEngine.

Changes CoreAudioAE::MakeStream to detect if transcoding is possible and needed. The
transcoding state is passed to OpenCoreAudio where is plays a part in
the setup of the object. Mostly, transcode behaves like passthrough
here.

The actual transcoding happens in CoreAudioAEStream, were an
AEEncoderFFmpeg is instantiated and used if transcosing is called for.

The trickiest bit is the addition of a buffer for incoming audio that
needs to be encoded. The encoder needs to work in specific block sizes,
and the incoming stream is not always handed to us in appropriate chunks
so we need to buffer it up so we can process it. This required a little
fiddling with the delays to make sure sync was kept tight.
Merge pull request #3074 from ecopoesis/coreaudio-transcode-ac3

transcoding to AC3 for CoreAudio