share internals of R.arity and R.nAry

I don't see a reason to create some of the arity fixers up front, since each one is created at most once anyway.

While it can be argued that the original

     return (cache[n] || (cache[n] = makeN(n)))(fn);

is too tricky or too complex, what advantage does the code here have over the simpler

    if (!cache[n]) {
        cache[n] = makeN(n);
    }
    return cache[n](fn);

?  Are you really worried about someone adding small numeric properties to the `Object` prototype?

While I supposed extreme defensive coding is a virtue, it also has to be balanced against simpler code.