(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.
Actually, looks like there's a bug in posix/execution; if every read returns a single line ending with a NL, it'll just buffer all the lines (sans newlines) into output without every writing it until the end.