(maint) Add TODO comment about \u handling in string quoting
(#22363) Improve handling of PNilType

Without this an inference of nil / undef results in an error. Now
the String 'Undef' is used.

Also, without this, a check for assignability to Nil would result
in assignability to PObjectType (which is the widest type), and this
would be wrong. (This is quite esoteric, but added for correctness).

To prevent the type reference Undef to be interpreted as a Resource
type, it has also been added to the type parser. And as a consequence
also to the type factory.
(#22363) Add missing support for Numeric type

The TypeParser and TypeFactory did not have support for the
abstract Numeric type.
(#22363) Correct failing test that relied on fixed bug for Type[Undef]

When the missing string conversion of Undef was added, the faulty test
triggered. It is now correct to check that the result is Type[Undef]
instead of Type[Object].
(#22363) Make interpolation use string_ for all runtime types

This adds polymorph string_ methods for Array, Hash, and Regexp to
ensure that interpolation result is defined (as opposed to just using
to_s and then being surprised when regexps and types come out weird.

Tests added.