(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.
@joshcooper had raised an eyebrow at redirecting to NULL, but mostly I did it because I wasn't aware of opening a NUL file on Windows. I'll look at it.