(#22363) Remove unused datatype_reference method in evaluator.

This method was unused - its intent was to create an RGen meta type
given a name - creation of types is deferred to a future version and
this method was just dead weight.
(maint) Remove stale TODO comments
(#22363) Remove the support for applying [] operation without arg(s).

The intent was to use an empty [] as a "default", but this was
a bad idea, it is just as easy (and clearer) to write just Array instead
of Array[] to mean an unspecified Array. All variants of apply of
[] to LHS now raise an error if arguments are empty.
(#22363) Refactor name of Puppet::Pops::Evaluator::Lambda to Closure

The new implementation is a Closure in that it has a reference to
the Evaluator and Scope where it was created.
(maint) Cleanup unused code and fix comments

There is no need to have an Evaluator class that describes the
API of an Evaluator at this point (since it is not used it had drifted
from the real implementation anyway).
(maint) Delete reference grammar.ra

The file pops/parser/grammar.ra was an intermediate step between
the old and the new grammar implementation. It used the old grammar
but created the new model. It can now be removed as the new grammar
is functioning as expected. (The original grammar is still available
as an up to date reference. The copy in pops/parser was not maintained).