Split invoker to invoker and invokerN

- Eliminate optional argument.
- Remove unnecessary check for `arguments.length`.
- Add unit tests.
FWIW, `Either` takes the message `left` and the value `right`. So if i am composing:

`compose(map(somethingElse), map(something), Either('arg! exception thrown by invoker!'), invoker(whatever))`

You're saying we should try-catch inside `Either`? (and othe functors, presumably?)

this may be a separate issue. Also, Either constructor should be curried.