Raise custom errors when a shell command fails

Looks like this:

```text
The following shell command exited with status 32:

    $ I_LOVE_YOU=barney TICKLE_ME=elmo evil command

Output:

    command failed

Error:

    The quick brown fox did not jump over the barn!
```

Fixes #322 

/cc @lamont-granquist @opscode/release-engineers