(CFACT-44) Implement Ruby Facter API

Implementing the Ruby Facter API in C++:
Facter.add
Facter.value
Facter.[]
Facter.fact
Facter.debug
Facter.debugonce
Facter.warn
Facter.warnonce
Facter.log_exception
Facter::Core::Execution.which
Facter::Core::Execution.exec
Facter::Core::Execution.execute
Facter::Core::Execution::ExecutionFailure
Facter::Util::Resolution (as Facter::Resolution with confines)

Not yet implemented:
- Aggregate fact resolutions.
- Need to hook Kernel#require in case facts require 'facter.*'
  Without doing so, Ruby facter will overwrite the above methods
  and facts will not get resolved into the C++ fact collection.