Implement IMA ADPCM WAV file support

Fixes #4628.

Unfortunately it seems @jamslater lost interest or is otherwise not able to continue working on it at the moment, so I'm trying to bring this into a "good enough" state so we finally have an alternative to AUD with both compression and stereo support.

Code is pretty much @jamslater's work, I just rebased and tried to adress at least a few of @ScottNZ's style nits.
I'll need more specific examples for further improvements in that regard.
I think this would be better as `public enum WaveType { Pcm, Adpcm }`