SI-7747 Support class based wrappers as alternative through switch -Yrepl-class-based

Refactoring to reduce the number of if-else

Fix test.
SI-7747 Support class based wrappers clean up

Simplified the code paths to just use one of two `Wrapper` types
for textual templating.

Simplified the class-based template to use the same `$iw` name
for the both the class and the wrapper value.  In addition,
the $read value is an object extending $read, instead of containing
an extra instance field, which keeps paths to values the same
for both templates.

Both styles trigger loading the value object by referencing the
value that immediately wraps the user code, although for the
class style, inner vals are eager and it would suffice to load
the enclosing `$read` object.

The proposed template included extra vals for values imported
from history, but this is not necessary since such an import
is always a stable path. (Or, counter-example to test is welcome.)

The test for t5148 is updated as a side effect. Probably internal
APIs don't make good test subjects.

Modify -Y option message.
Merge pull request #3123 from som-snytt/issue/7747-scrapcodes-fix

SI-7747 Support class based wrappers in REPL