gather should batch an eager reify

Just changing the batch size from 1 to 1000 makes a simple gather/take
run twice as fast, even though it's still doing all the continuations.
make xx about 3 times faster on literals
scale xx better based on size
couple of buglets in previous patch
Bump NQP to fix jit/LOLLY problem on OSX
xx * can also be called with :thunked
NaN === NaN (RT #83622)

masak++ for a simplification
don't try to make a batch of size 0
just do a straight eager rpa write, 10% faster

No point in involving gather/take at all when we know this is eager.
Could probably speed this up further if we had low-level memory copying
of rpa pointer data, so we could batch the memory initialization.

Actually, this runs 10% faster on Moar, but a little slower on JVM than
previous.  We'll optimize for the better optimizer at this point, which
is Moar's.  Presumably the JVM's optimizer will catch up sooner or later.
return an empty list for foobar xx -1
eagerize combinations/permutations somewhat

Since we generally want all the combinations at a particular complexity
level, batch the gather/take at each level.  (Combinations over a range of
levels still are lazy on going to the next level.)  Runs about 25% faster.
fix combinations(0) to work as a list of []