Increase backward compatibility of REJOIN
Increase backward compatibility of REJOIN

REJOIN is deprecated as a name and concept...where instances of it
should either be changed to UNSPACED or JOIN-ALL.  But by default, its
behavior was a slight modification to JOIN-ALL.

The slight modification wasn't enough to make it compatible with some
of the cases that expected it to be willing to "stringify" its first
argument if its not a series.  JOIN-ALL rejects this, because it seems
there's not enough information to know if `JOIN-ALL [1 [a]]` should
be "1a" or [1 a] or something else.

But just because JOIN-ALL rejects it, doesn't mean REJOIN can't be
more compatible.  This uses ADAPT to sense if the input to REJOIN
has a non-series in the first element, and if so, passes a copy of
the input block to JOIN-ALL which has the stringification of the first
element in the first slot.

It's not terribly efficient in that case, but people shouldn't be using
REJOIN in cases where they meant UNSPACED anyway:

    >> x: [some stuff]

    >> print rejoin ["the data is" space x]
    the data is some stuff

    >> print rejoin [x space "is the data"]
    *** Script Error: some has no value
    *** Where: print

Increases the efficiency in another aspect, by specializing the
EITHER-TEST-VALUE native as the chained-to function with a branch,
reducing it to a single native instead of a usermode function.

draegtun/ren-c,codebybrett/ren-c,codebybrett/ren-c,codebybrett/ren-c,kealist/ren-c,giuliolunati/ren-c,kealist/ren-c,rgchris/ren-c,giuliolunati/ren-c,codebybrett/ren-c,draegtun/ren-c,codebybrett/ren-c,giuliolunati/ren-c,kealist/ren-c,hostilefork/rebol,rgchris/ren-c,hostilefork/rebol,draegtun/ren-c,hostilefork/rebol,hostilefork/rebol,kealist/ren-c,hostilefork/rebol,giuliolunati/ren-c,draegtun/ren-c,codebybrett/ren-c,giuliolunati/ren-c,kealist/ren-c,draegtun/ren-c,kealist/ren-c,rgchris/ren-c,rgchris/ren-c,rgchris/ren-c,draegtun/ren-c,hostilefork/rebol