CoreAudioDecoder: greatly increase number of frames decoded per call

- Decode ~1 second of audio per invocation of decodeNextFrame (this is
  sampleRate number of frames)
  - This is ~176kb (assuming 44.1kHz)
  - Because this is large and we don't want to stack overflow, change
    the temporary buffer to being allocated on the heap. Since we don't
    want to call malloc/free every time, the temporary buffer is now an
    ivar and is setup/free'd in init/dealloc
- Increase the FIFOBuffer size to 2Mb in the MusicController (so there
  is enough room without it overflowing)
- Related to issue #40

For 20MB buffer, -0s, time to fill half the buffer:
0.888204 seconds -> 0.087203 second (~10x faster)

This massive speed improvement is probably because calling functions is relatively expensive due to objective-C overhead. Before,
decodeNextFrame and [fifoBuffer write] were being calling every 4 bytes,
but now we call it every 175kb, which is much more efficient.
VorbisDecoder: increase number of frames decoded per call

- Decode ~1 second of audio per invocation of decodeNextFrame (this is
  sampleRate number of frames)
- Create temporary buffer in init, and free in dealloc -> avoids doing
  it every time in the decode function.
  - To get the size, we need to know the sample rate, which requires
    calling decodeMetadata.
- See 8630232 for more details
- Related to issue #40

For 20MB buffer, -0s, time to fill half the buffer:
0.194197 seconds -> 0.170619 second

There is much less improvement here compared to the CoreAudio decoder,
because before we were already doing things every 4096 bytes (which is
much more than CoreAudio's 4 bytes).
FLACDecoder: optimize the interleaving of L/R audio

- Instead of writing the 16-bits frame of L/R alternatively (which is
  very slow because of Obj-C function calling overhead to
  [fifoBuffer write] and we were calling it every 2 bytes), we do the
  interleaving first in a temporary buffer in this C function and call
  the [fifoBuffer write] once with the finished product.
  - Tried using memcpy() but this was a little slower
  - This casts the temp buffer as an array of 2 byte short ints and
    fills it that way instead
  - Now it is called every ~4kb (see below)
- Unfortunately we have to do the malloc/free of the temp buffer inside
  the function, because the frame size in theory could change so we have
  no way of pre-allocing the buffer
- Related to issue #40

For 20MB buffer, -0s, time to fill half the buffer:
0.924699 seconds -> 0.254549 seconds

FLAC unfortunately always gives us one FLAC frame of audio (which is
usually 4kb), so it's not great function-call wise but there's nothing
we can do about it.