Move to fully generic
Add Flatten func.

Holy shit, harder than expected. Required creating a means for
flattening nested ValueStreams on the fly - flattenValueStream().
Add ChunkBy.
Strip some unnecessary comments
Get rid of CompoundValueStream, the recursing func is better