(#21738) Revert "(#2157) Remove support for executable external facts on Windows"

This reverts commit 008cc6cdf79df1589c060e2a088caffc9cf6da77.

Conflicts:
	lib/facter/util/directory_loader.rb
	lib/facter/util/parser.rb
(#21738) Add .cmd / Update PowerShell parser

This updates the PowerShell parser to add a switch for the Bypass execution
policy which means that the execution policy will not need to be set
prior to running facter. This also adds some switches (NoProfile,
NoLogo, NonInteractive) that speed up the execution of external powershell
facts.

This also adds the extension .cmd as a valid file extension as part of the
ScriptParser. This functions in the same way as .bat.
maint: Refactor Key Value Output Parsers

This extracts parsing the output of a command to a common method shared between
powershellparser, textparser and scriptparser and cleans up the methods to take
advantage of the same parsing technique.
Merge pull request #508 from ferventcoder/fix/21738/win_external_facts

(#21738) Support for executable external facts on Windows
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  maint: Refactor Key Value Output Parsers
  (#21738) Add .cmd / Update PowerShell parser
  (#21738) Revert "(#2157) Remove support for executable external facts on Windows"

Conflicts:
	lib/facter/util/parser.rb