Change type to which for ZSH #7597

- The original SHIM did not save the resturn value of `type`.  It would
  just test for a good result, then use the unqualifed command name.
- I changed the SHIM to save the fully-qualified path as retuned becuase
  when using `sudo` the PATH may not be the same as the logged-in user.
- `type` output on ZSH apparently differs from other shells:

      ZSH:

      [aantony@pan]/work/salt/salt-develop% type -p python
      python is /work/salt/salt-develop/salt-virtualenv2.7/bin/python
      ^^^^^^^^^
      BASH:

      aantony@pan [619] $ type -p python
      /work/salt/salt-develop/salt-virtualenv2.7/bin/python

- `which`is consistent across them, and I would expect most shells.
More salt-ssh improvements than belong in this issue

- Explict bourne shell, there is no other way to get broad compability
- test python version in SHIM
- inspect SHIM output for errors, and report sensible error results
- Refactor some stuff to consolidate deploy behavior.  We still test and
  attempt deploy in at least 3 other palces yet.
- factor run_wfunc out of single.run for obvious reasons
Merge pull request #7628 from ajithhub/7597_ssh_zsh_type_which

Change type to which for ZSH #7597