upcase SHUNIT2 again; overzealous the first time
various cleanup of assigning, quoting and passing variables
more cleanup of quoting and passing variables

Most noteworthy is chruby-exec. In order to correctly pass the args
to 'chruby' "$SHELL" and solve the quoting problem, I had to move
the expansion of the array named 'argv' and the unshifted positional
parameter *behind* the 'chruby ...' command invocation. This is a
bit more complex but makes the operation fully safe by allowing
the expansions to occur, properly quoted, in the current shell and
then to properly quote them again in the exec'd shell. It requires
an obtuse loop, and a sentinel end-of-parameters marker, but this
method is foolproof and extensible in future edits.