(perf) Make location calculation lazy and pass all tests

A class (and subclasses) called Locatable were added to delay the
computation of location as long as possible.

SourcePosAdapter was modified to hold a Locatable instead of
individual measure (line, pos, etc.).

Factory was modified to make use of the new Locator when creating
source positions. It also got some additional performance tweaks.

The egrammar had a bug where it cause recursive lazy location
resolution. A located result should not be located again since it
resolves to itself.

Lexer support was modified to make use of Locatabel.

Transformer spec used an old SourcePosAdapter and required changing.
(maint) Remove dead / unused and broken code in Factory

There were a dead part of the logic trying to deal with
associating documentation with model objects (only using sourcepos
adapter instead of doc adapter).
(maint) Add use of new evaluator in specialization of EvaluatingParser

This makes it easier to test the new evaluator as it is being
developed. Add tests using the Transitional impl.
(#22363) Add parse / validate / evaluate tests, fix evaluator issues

This adds a comprehensive parse/validate/evaluate test for the
future evaluator. Several parsing and evaluation issues were found and
corrected.
(squash) Fix indentation
(maint) Add missing DELETES token in grammar

All tokens should be listed in the beginning of the grammar. The
DELETES (-=) token was missing. (Seems to work anyway because it is
given a precedence).
(maint) Cleanup comments
(maint) Remove unused file CallOperator
(maint) Protect against endless recursion if user calls with wrong type

When user of the function find_adapter called this method with
an array, the eContainer method returned the container of each member
of the array until it got an emtpy array. At that point recursion became
endless.

The function is not designed to be called with an array of
objects, but better to produce a nil value than causing an endless
recursion for which no stack trace can be obtained.
(#22363) Change evaluator error reporting to use Pops::Issues

The evaluator made call to a fail function that just printed the
message without any details. This changes the behavior to use
the Pops::Issues system. 

Many issues have been added. Some error messages were changed.