Allow to fuse multi-output fusion producers into consumers.
Allow to fuse multi-output fusion producers into consumers.

It was already possible to sibling-fuse two multi-output fusions. This worked
as treating tuples that are fused into a computation in a special way, and uses
the assumption that there is no (direct or indirect) user of the tuple inside
the "target" fusion. Now we add logic to detect which of the fusion outputs
is still needed as fusion output of the merged fusion, and fuse the tuple
elements one by one.
