Make .produce/.reduce nodal the correct way
Make .produce/.reduce nodal the correct way

The intent seems to be that they should be nodal, but they way this
was implemented, hid the "is nodal" functionality.

Simplify the actually working candidate to not need a temporary variable
or an -if- statement: if the lookup for the reducer fails, a Failure will
be returned, which will throw as soon as it is attempted to be executed.

Also implement a candidate for handling type objects: there should be
no reason for doing that at runtime repeatedly.

This breaks tests 134/135 in S03-metaops/hyper.t .  However, these tests
seem to assume non-nodality.

This may also have breaking consequences in the ecosystem: a special note
in the release message / a p6alert seems to be in order if this change is
going to make it to the next release.

tbrowder/rakudo,labster/rakudo,salortiz/rakudo,softmoth/rakudo,tony-o/rakudo,MasterDuke17/rakudo,tony-o/rakudo,lucasbuchala/rakudo,nbrown/rakudo,softmoth/rakudo,MasterDuke17/rakudo,labster/rakudo,MasterDuke17/rakudo,Gnouc/rakudo,tbrowder/rakudo,labster/rakudo,nbrown/rakudo,tony-o/rakudo,rakudo/rakudo,MasterDuke17/rakudo,nbrown/rakudo,MasterDuke17/rakudo,lucasbuchala/rakudo,softmoth/rakudo,tony-o/rakudo,nbrown/rakudo,labster/rakudo,nbrown/rakudo,nbrown/rakudo,MasterDuke17/rakudo,Gnouc/rakudo,salortiz/rakudo,Gnouc/rakudo,tony-o/rakudo,tbrowder/rakudo,tony-o/rakudo,rakudo/rakudo,rakudo/rakudo,softmoth/rakudo,salortiz/rakudo,labster/rakudo,labster/rakudo,tbrowder/rakudo,Gnouc/rakudo,salortiz/rakudo,rakudo/rakudo,Gnouc/rakudo,tbrowder/rakudo,softmoth/rakudo,lucasbuchala/rakudo,salortiz/rakudo,rakudo/rakudo,tbrowder/rakudo,rakudo/rakudo,lucasbuchala/rakudo,Gnouc/rakudo,salortiz/rakudo,lucasbuchala/rakudo