Adding the [cmd] parameter, misc refactorings around it.

Now posit receives the shell interpreted to be used on tests. This
allows one shell to test another like `zsh bin/posit run ksh test/`

The trace command used in PS4 to generate stacks is now cached
and retrieved only once.

Added more documentation.