Output item removal
The MIR does not have output items. Instead, we create
:: output_only string declarations for each output section.
output ["foo\n"];
output :: "section" ["bar\n"];
output :: "section" ["qux\n"];
Becomes:
string: mzn_output :: output_only = concat(["foo\n"]);
string: mzn_output_section :: output_only = concat(["bar\n"] ++ ["qux\n"]);
We also make the :: output variables explicit, so var declarations with no
RHS definitions get :: output added unless they are already marked as
:: output or :: no_output.