Add TransientOutputModules to TaskChain

Same functionality as in ReReco, some modules can be kept unmerged if
necessary in order to reduce the output but allow subsequent processing.

The parameter per task is TransientOutputModules, also KeepOutput is still
valid and can be used to wipe all the output in the task to unmerged. If
KeepOutput is False then TransientOutputModules doesn't have any effect.

Fixes #4474