(CFACT-44) Fix calling resolution block twice from Facter.add.

The block given to Facter.add is inadvertently being called twice.
This went unnoticed because most facts created with Facter.add
simply do setcode / chunk / aggregate calls and that modifies
the state of the resolution before the value is resolved.

This was caused during a refactoring where define_resolution
executed the block.  The code for Facter.add was also executing
the given block.  Facter.add should rely on define_resolution
to execute the block.

Additionally, the protect call was unnecessary since there were
no instances of types with destructors being declared.
(CFACT-44) Log a warning when custom facts attempt to use the timeout option.

Log a warning once when the :timeout option is specified in Facter.add.

Log a warning once when timeout= is called from a resolution.
Merge pull request #101 from peterhuene/cfact/44

(CFACT-44) Log warning for use of timeout option in custom facts.