Split invoker to invoker and invokerN

- Eliminate optional argument.
- Remove unnecessary check for `arguments.length`.
- Add unit tests.
if we want these to compose wouldn't we want to return null/undef so it could be wrapped in a Functor?