(#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.
(#22365) Add validation of select expression

The rvalue checks for select expression and select options where
missing (they were indeed faulty because of a method name typo).