(PUP-2927) Enable Facter debugging with debug option.

Enabling Facter debugging when the debug option is given to Puppet.
(PUP-2927) Enable Facter stack traces with trace option.

Enabling Facter stack traces when the trace option is given to Puppet.
(PUP-2927) Route Facter logging through Puppet's log.

If using a recent version of Facter that supports Facter.on_message,
Puppet will now route Facter's logging through Puppet's log with a
source of "Facter".

This supresses Facter debug/warning message output in favor of letting
Puppet handle the messages.  This also results in Facter's logging
ending up in the report.
(maint) Replace Facter[].value calls with just Facter.value.

There are a few remaining Facter[:name].value calls remaining.
We use the shortcut method Facter.value throughout Puppet's source, so
removing these calls in favor of the simplier Facter.value call.
Merge pull request #3331 from peterhuene/pup/2927

(PUP-2927) Improve Facter logging integration.