(CFACT-44) CFacter gem should always return a Fact object.

Unlike Facter, CFacter doesn't make a distinction between facts that
loaded but didn't resolve (value is nil) and facts that didn't load.

Facter#[] returns nil for facts that didn't load and a Fact object for
facts that loaded but may not have resolved (value is nil).

Therefore, CFacter#[] needs to always return a fact object to keep this
expected behavior.
(CFACT-44) cfacter should only load custom fact files once.

If the same search path is specified multiple times, cfacter
will attempt to load the fact the same number of times.

To maintain the same behavior as Facter with respect to
configuring search paths, load a file only once but do so in discovery
order.
(CFACT-44) Enable a warning log level when using the gem.

Currently the gem disables all of cfacter's logging.
To get useful diagnostics when using cfacter in puppet,
configure logging at the warning level.
(CFACT-44) Custom facts should restore previous Facter module.

Currently the custom fact processing removes the existing Facter
module if present.

Instead, it should save the current module and restore it when
processing custom facts has completed.
Merge pull request #81 from peterhuene/custom/facts

(CFACT-44) Various fixes for using cfacter under Puppet.