Do not wrap arg arrays in RubyArrays prematurely

This refactor makes it easier for deeper calls to determine exactly
what their args looks like (when transformed into a RubyArray too soon,
it was hard for yielders to tell if you have multiple args,
or one array arg)

This lets us clean up a few places which were adding extra logic to deal
with that ambiguity, and positions us to start applying
RubyProc.prepareProcArgs more centrally (all proc calls need that logic
applied, but it is currently not enforced in some places)