Split invoker to invoker and invokerN

- Eliminate optional argument.
- Remove unnecessary check for `arguments.length`.
- Add unit tests.
I would think a common use of Either would be

    try {
        // calculate `val`, with process that might throw exception
        return Either.of(val);
    } catch (e) {
        return Either.of(null, e); // e.message?
    }