Make ParamValue iterable and Argument string-renderable

Since the type of each element of ParamValue.ValueList has been changed
to 'Argument', the string named renderer should also be able to render
these 'Argument's correctly. It will emit the canonized form of the
argument value.

Moreover, ParamValue now implements Iterable<Argument>: in the templates,
we can now use ${foreach in v} instead of ${foreach in.ValueList v}.