Add basic channels abstraction, ChannelMergerNode, and sink support for channels #54
Channels are stored as a continuous buffer with each FRAMES_PER_BLOCK chunk being one channel. They can also be grouped together via
The iterator is a bit awkward due to the lack of associated type constructors (it's a streaming iterator).
part of #18
Scratch that, I planned ahead pretty well and the actual stuff was easy to implement with this abstraction in place.