fix tainting and overload
Sometimes when an overload method returned a tainted value, that
taintedness got lost. This fixes #75716: overload removes tainting.
It also considerably expands the tied series of tests in overload.t.
It now taints the return value, and checks for correct taintedness.
It also tests against two overload packages: the new one only has fallback
methods, which affects the return path for the tainted value.
It now also compares the expected (non-tied, non-overload) expression
value against a overloaded version of that expression in addition to
versions where a tied var returned an overloaded object; e.g. in these
expressions:
1: 1 + $plain_value
2: 1 + $overloaded_var
3: 1 + $tied_scalar_that_returns_overloaded_value
4: 1 + $tied_array_whose element_0_holds_an_overloaded_value[0]
then the value of expression 1 is compared against each of 2,3,4, whereas
before it was only compared against 3,4.