(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.
Does this override --debug/-d? We should specify how they interact.