(PUP-2927) Improve Facter logging integration.

These commits improve the integration with Facter's logging.

Without these changes, Facter logs directly to stdout/stderr.
With these changes, Puppet now intercepts Facter's log messages and writes them to its own log.
Note that a version of Facter that supports intercepting log messages is required for this feature to work.

Also included is pass-through for the `--debug` and `--trace` options in Puppet; specifying these options now turn
on the corresponding feature in Facter.