(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.
One more attempt. If this doesn't meet your approval, I'll go back to the initial implementation.

I like it because it's more declarative than procedural. I think there's less chance of messing up counters and the logic is easier to understand without comments (if you know the boost tools).