(CFACT-91) Implement external facts on Windows

Add Windows external facts and execution infrastructure supporting it. Also ends up filling in Ruby custom fact support.
I tried to rewrite this section to improve on the version in posix/execution.cc, but I don't think it's any easier to understand (maybe harder). So I'l probably end up copying from posix/execution.