(FACT-237) Add directed graph for handling dependencies
(FACT-237) Add aggregate resolution class
(FACT-237) Implement deep_merge for composing facts
(FACT-237) Implement deep_freeze for composed facts
(FACT-237) Use specific error classes for deep_merge and deep_freeze
(FACT-237) Freeze results of each aggregate chunk
(FACT-237) Define default aggregate action
(#22636) Allow list of external fact directories to be appended to

Currently, the only way to override the external facts directories is to write your own Facter::Util::FactLoader and replace the existing loader with this.  This commit allows you to simply set or append to the already existing ext_facts_dirs variable which makes it much more extensible for use by other programs like puppet.
(#9546) Do not execute com, cmd, exe, or bat files if not on windows

Facter currently only executes com, exe, and bat files if on a windows
system.  It should also exclude these on unix flavored systems since
the interpreter for these "cmd.exe" will not be present.

This also supports the use of pluginsync for external facts where in a
hybrid environment external facts for windows may end up getting syncd
to a unix system.

Conflicts:
	spec/unit/util/parser_spec.rb
(RE-814) Add initial support for building in a RHEL 7 mock

RHEL7 support is being added for x86_64 only; we'll fix/expand
this if upstream releases a 32-bit version of RHEL7.
(maint) Pin windows compiled gem versions

Since the windows spec boxes may not have dev tools installed, they may
not be able to install newer versions of the windows API gems. This
commit ensures that we won't have to worry about an unexpected version
of one of those gems failing to install.
Merge branch 'maint/facter-2/pin-compiled-gem-extensions' into facter-2
(fact-194) Add Facter.search_external{,_path}
Merge pull request #615 from kylog/issue/fact-194/external-facts-plugin-sync-support

Issue/fact 194/external facts plugin sync support
Merge pull request #614 from mckern/cherry-pick

Add initial support for building in a RHEL 7 mock
Adds support for building facter on RHEL7 via spec.
Merge pull request #509 from mzeren-vmw/fix/22060/undefined_path_in_macaddress

(fact-202) Fix undefined path in macaddress.rb
Add initial support for building in a RHEL 7 mock

RHEL7 support is being added for x86_64 only; we'll fix/expand
this if upstream releases a 32-bit version of RHEL7.
Merge pull request #612 from adrienthebo/feature/facter-2/fact-237-aggregate-resolutions

Feature/facter 2/fact 237 aggregate resolutions
Merge pull request #616 from mckern/add-el7-to-stable

Apply the RHEL7 work and merge it into stable