Exec/command handling fixes
Internally items such as Exec/Process/Packages/Ansible calling RunCommand wouldn't always emit the right error for things such as exec'ing a bad path.
The Go command package overloads error here to include non-zero exit as an error as well as real errors. Since non-zero exit is covered by the exit code we return and it's guaranteed to have filled in stdout/stderr we can eliminate that as an error case. Then all other errors are real and can be handled as such.