When a spy is invoked, record the arguments it was invoked with and then execute (call through to) the original function/command. This will only ever work with a shell that supports something like `declare -f` or `typeset -f`, so `dash` and `posh` support is a no-go.