(#22363) Remove support for extract type and title from type calculator

The support for 3x logic to convert catalog types to name and title
array was intended for calls from within 3x logic. This was not a
desired solution and the the support in the type calculator ended up
being unused. This removes it. (The corresponding logic is instead found
in the runtime3_support module).
(#22363) Add file/line when creating resources and parameters

The previous version of the logic cheated with "todo" and -1. Now
the file and line is picked up from the reference expression.
While not 100% accurate (it gives the resource expression as a whole,
or the parameter expr as a whole as the location instead of the more
detailed expression (one particular title etc).
(#22363) Add file/line information to resource operations

The resource related statments were using fake file and line infomation.
This is now picked up from the source position / locator and passed on
to 3x logic.
(#22363) Make hash lookup agnostic for nil/undef lookup

A hash lookup now interprets nil and undef as the same value when
doing a lookup.
(#22363) Add test to assert that hash lookup miss == undef
(#22363) Add label.plural support to LabelProvider

This makes it easier to add plural s in error messages.
(#22363) Improve label provider

There were labels missing for Booleans, and when given a class.
Also changes labels of all types to nnn-Type as that read better in
error messages; e.g. Integer-Type, String-Type.
(#22363) Improve error messages from [] operator

There were several cases where errors in arity and type incompatible
in the given keys produced generic error messages, messages without
location, and in a few cases with errors while formatting the error
message.

Test examples added.
(#22363) Add support for Float range.

A Float range behaves like an Integer range, but it does not
support iteration. (It is valuable in checking type of inferred type).

e.g. [1.0,4.2] =~ Array[Float[0, default]] # are floats and positive
(maint) Fix failing tests after rebase to latest master

4 tests were failing because Puppet[:hashed_node_data] was renamed
to Puppet[:trusted_node_data]. This commit changes the failing tests
to use the renamed setting.
(maint) Raise exception when reaching corner case of code merge

There is one case that occured once during testing where the
runtime tried to merge code in a PopsBridge::Expression. This was
probably due to faulty test setup. If this happens again an exception is
now raised. (There was a call to 'debugger' there).
(maint) Remove calls to debugger in performance / serialization tests
(maint) Fix indentation in benchmark_spec.rb
(maint) Fix typo of o-diaresis char in comment

Fat fingered comment with spurios ö (o-diaresis) character.
(maint) Fix indentation of attr_reader
Fix small typo
(#22363) Add description of iterating an enumerable type with each.
(maint) Comment out unreachable code in pops bridge
(yardoc) Fix typo in source pos adapter yardoc.
(yardoc) Fix stale yardoc for Resource [] operator

The documentation had typos and was wrong since support was added
for getting the property of a fully qualified resource reference.
I.e. File['foo']['bar'] gets the 'bar' property of the referenced file
resource. 
Also had stale documentation stating that [] keys produced a deep copy.
That is wrong - it produces a syntax error, and if done from code, it
fails with an arity error.