1) Set a buffer of 2MB instead of setting the buffer to nullptr and depend on it being grown by assets being loaded at the game launch
2) Update some C style code to C++ style
3) Improve Extend feature to support handling a larger number of samples, and error handling in case of a memory allocation failure
JACK processes every channel separately, so we need this. The audio data is
interlaced all the way back at RageSound::GetDataToPlay(), so this is an easier
hack for now than using deinterlaced until it's needed.