Fix CHEF-5294 - mixlib-shellout produces nil error when execute command fails too fast

CHEF-5294 was closed as "pretty sure this got fixed", but I don't think it was.

The error seems to occur when:
- The child process is unresponsive
- The process group of the child process cannot be retrieved (possibly because the child process is a zombie)

I added a test for this scenario and fixed it by sending signals (TERM then KILL) to the child process group if it exists, or to the child process if there is no group.