(#22366) Fix model building of CollectExpression
There was a mistake in the COLLECT factory method. It assumed
that if it did not get a QualifiedReference it should build
one out of its argument turned into a string. This was wrong since it
gets prebuilt model objects. The result was that the CollectExpression
ended up with a classname on the form
puppet::pops::model::literalinteger<54875847584> which is clearly
wrong. As a result a confusing error message was printed that that node
did not exists, or that the horribly wrong name was an invalid name.
With this fix, the CollectExpression is built using the parsed
expression, and since it is wrong, validation kicks in and provides
output that is meaningful.