Tweak (internal) loop representation some more.

You now have to specify a subset of the merge variables to return as
the result.

This also permits the tweaking of how loops are internalised.  Biggest
change: they are split into a shape-loop and a value-loop, like
function calls.