(fact-81) Use Emit.dump rather than to_plist

See https://github.com/puppetlabs/facter/pull/499 and the linked
redmine tickets for backstory. The basic issue here is that
CFPropertyList monkey-patches some core ruby classes with a
to_plist method, which defaults to returning binary data. This
code was originally written to the vendored CFPropertyList
previously included in facter (but unvendored in fact-94),
which provided a different to_plist implementation returning
text data.

This commit avoids the conflicting to_plist implementations by
calling its own dump method, thus no change in behavior.
(maint) Reset facter search path when resetting facts

The previous implementation of Facter search paths was only additive and
there was no way to remove Facter search paths once added. This is
especially problematic when running the Puppet specs which wind up
reloading Facter frequently and adding search paths, and can wind up
adding thousands of meaningless paths. This commit resets the Facter
search path on `Facter.reset` so that when facts are reset, the known
search pats are reset as well.
Merge pull request #625 from kylog/issue/fact-81/avoid-multiple-impls-of-to_plist

(fact-81) Use Emit.dump rather than to_plist
(FACT-321) Remove interpreter arg for command execution
(FACT-321) Remove interpeter arg from resolution
(FACT-321) Remove deprecated interpreter from resolution
(FACT-321) Remove deprecated 'memorytotal' fact
(FACT-321) Remove deprecated Resolution#to_s()
(FACT-321) Remove ENV['DESTDIR'] and --test from install.rb
(FACT-321) Remove deprecated windows shell builtin execution
(FACT-321) Remove deprecated file extension expansion

This commit removes the automatic expansion of Windows commands that
have an absolute path but do not have a file extension.
(packaging) Update FACTERVERSION to 1.7.5
Merge pull request #631 from adrienthebo/maint/facter-2/remove-deprecations

Maint/facter 2/remove deprecations
Merge pull request #628 from adrienthebo/maint/facter-2/cleanup-search-path-on-reset

(maint) Reset facter search path when resetting facts
(maint) refactor solaris virtual fact to use timeouts

The previous implementation of the solaris virtual fact used a
resolution inside of a resolution because the original author (me)
didn't know that the executed code already _was_ a resolution. This
commit deduplicates the resolution and makes the entire resolution
timeout like one would expect.
(FACT-273) Resolutions should be able to reference their facts

The fact-resolution relationship is one to many, and there is
information in the fact that we need in the resolution. This commit
directly couples facts and resolutions for this purpose.

This commit also adds a healthy refactoring of the fact and resolution
tests to use modern rspec expectations and use imperative phrasing in
specifications.
(maint) Add more context when resolutions fail to evaluate
[FACT-239] Cleanly evaluate blocks in resolution context

doing an `#instance_eval` on another object is a little bit evil and
entangles the calling object and object being evaluated. This commit
defines an `#evaluate` method on resolutions so that resolutions can
define the behavior of evaluating a block.
(FACT-239) Delegate Fact#add to Fact#define_resolution
(FACT-239) Move resolution interaction to facts

Facter::Util::Collection never directly interacts with resolutions, so
it doesn't make a lot of sense for the collection to be setting options
on resolution instances. This commit pushes the last of that
entanglement into Util::Fact, which does interact with resolutions.