(#21738) Support for executable external facts on Windows

This fix brings back the executable external facts to Windows.
This was in before but was removed because it was unable to be 
tested properly. Without this executable external facts will not 
work on Windows.

This adds the extension .cmd as a valid file extension as part of the
ScriptParser. This functions in the same way as .bat.

This also updates the PowerShell parser to adds a call to the bypass 
execution policy which means someone will not need to set the 
execution policy prior to running facter. This also adds some 
switches (NoProfile, NoLogo, NonInteractive) that speed up the
execution of external powershell facts.