(CFACT-145) Implement Ruby API looking hooks for client applications like Puppet.

These commits add the following methods to the Ruby API:

    Facter.on_message
    Facter.trace
    Facter.trace?
    Facter.debugging
    Facter.debugging?

Additionally, the `--trace` option has been replaced with the `--log-level` option that now supports setting any log level (none, trace, debug, info, warning, error, or fatal).
The `--trace` option is now supported as "print stack traces for custom fact exceptions", which is the meaning of the `--trace` option under Ruby.
That's true, although getting/setting the level concurrently shouldn't really be an issue unless we want to guarantee that no messages get logged by any thread as soon as the level changes.  wrt to the callback, we would definitely need to revisit that to make it thread-safe.

If pegasus started using our version of logging, I don't think they'd have a problem.  They set the log level once before any new threads spin up.