Add output type information to the C operator.

Also, make the operator string more verbose (contain the entire statement, no shortform).
Don't make any distinction between inputs/outputs in C op generator.

This will allow multiple outputs to be allowed, without a complicated string
formatting syntax.

The higher-level operators that use these generated functions will have to
know which parameters are inputs/outputs, and deal with any other issues like
doing I/O over elements in a particular order (e.g. for doing running sums).