(#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
(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