add cmd and args options

* scripts can now be called with custom executables. e.g. `node` or `zsh`
* both `func` and `script` can accept additional args. As defined by the optional `args` option.

Also, this some how bumped test coverage by 1% :)