... except Audacity.h
This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
The problem from the beginning has been that some parts of the code expected to
receive interleaved buffers from Dither and some expected non-interleaved buffers.
I was trying to keep the changes to a minimum, but it just wasn't possible.
The result is that Dither can now accept any combination of non-interleaved and
interleaved source and destination buffers.
I still want to review every single usage of Dither (and all of the intermediaries)
because I've seen allowances here and there for the lack of Dither returning
interleaved buffers. Since it can now return interleaved buffers, some of that
extra processing can be removed.
Changing the way interleaving was handled by Dither was not the right thing to do. The actual fix for the original issue was fixed with the changes to Mix.cpp.