[action/puppetfile] Raise error on nonexistent Puppetfile
[action/puppetfile/purge] Use correct trace variable
[action/puppetfile/check] Rescue all errors raised while loading
Merge pull request #259 from adrienthebo/issue/1.4.x/gh-254-puppetfile-install-exit-code

(GH-254) Improve puppetfile action error handling
Merge branch '1.4.x'
[subprocess] Remove unused IO class, reorder runners
[subprocess] Reorganize namespace
[subprocess/posix/runner] Clean up pipe generation
[subprocess/posix/runner] Log exec failure, add exit code
[util/platform] Add #posix? method
[subprocess/posix/runner] Add spec coverage
[subprocess/runner] Remove #start and #wait

The start and wait methods have strange semantics when the given command
fails to execute, and are not used. They can be removed.
[subprocess/runner] Remove unused pid and status attributes
[subprocess/runner] Remove unnecessary methods

The Runner base class implemented a number of methods that were also
implemented on Result objects, which had odors reminiscent of feature
envy. This commit removes those methods and changes all calling code to
use the methods on Result instead.

This methods
Remove leaky abstraction for command runners
[spec] extract subprocess runner shared examples
[runner/posix] Deduplicate process launch handling
[subprocess/runner/pump] Implement IO Pump class
[runner/posix] Drain stdout/stderr with IO pumps

The POSIX process runner would not try to read any contents out of the
stdout/stderr IO pipes while the process was running, and could very
well run into the 64KiB buffer size limit which would stall the child
process. This hooks up the IO Pump class to stdout/stderr for those
processes to avoid this issue.
[subprocess/runner] Add specs for filling IO buffers