(FACT-327) 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-327) Extract command execution base class
(FACT-327) Extract windows/posix execution classes
Merge pull request #634 from adrienthebo/refactor/facter-2/fact-327-pluggable-command-execution

Refactor/facter 2/fact 327 pluggable command execution
(FACT-346) Remove deprecated selinux_mode fact

See also https://projects.puppetlabs.com/issues/6677
Merge pull request #645 from adrienthebo/deprecation/facter-2/fact-346-remove-selinux-mode-fact

(FACT-346) Remove deprecated selinux_mode fact
(FACT-272) Format facter --help to work with ronn

This commit updates the output of facter --help to create markdown that
can be converted to a man page via ronn.
(FACT-272) Update manpage based on facter --help
Merge pull request #646 from adrienthebo/doc/facter-2/fact-272-update-manpage

Doc/facter 2/fact 272 update manpage
Merge remote-tracking branch 'upstream/facter-2'

Conflicts:
	lib/facter/core/execution.rb