Features/report fewer packs

Uses a channel to turn the *PipelinePack.reports() method into a generator so we don't consume all of the MGI pool when we have a lot of plugins.