Merge pull request #631 from adrienthebo/maint/facter-2/remove-deprecations

Maint/facter 2/remove deprecations
(FACT-150) Move Process.waitall to Execution.exec

Commit d24504e8 added functionality for waiting on child processes if we
aborted command execution early, but this only really applies to command
execution. This commit relocates the waitall functionality to
Execution.exec so it's clearer what we're waiting on and why.
(FACT-150) Extract command execution base class
(FACT-150) Implement Ruby 1.9 command execution

This implements command execution that takes advantage of Ruby 1.9
process functionality. If a command is executed and #exec is terminated
unexpectedly this code will wait for the child process and only the
child process to prevent zombies.