Use channels to feed the pipeline packs to the outputs so the pipeline isn't
blocked on synchronous file and/or network access.
Get rid of internal channel for the counter output since we're guaranteed to
be in series now.
Add support for mem profiling output (in addition to cpu profiling).