Make non-recursive invoke the default

In my usage, I've found recursive `invoke` to be undesirable as a default as it can lead to some surprising behavior and errors. @jlongster has also echoed this.

This PR changes `invoke` to work non-recursively, while providing `invokeRec` as a recursive alternative.