Add windows userdata

This is a work-in-progress branch.

This branch adds userdata support for windows systems.
Rather than this, can you please change AddFile to store the results in an intermediate form, and then do the right thing based on whether Render or RenderWin is called. The less we expose to clients, the simpler it is to use (and harder to mix'n'match incompatible functions.)

Order is (I think?) important in our cloudinit creation, so the existing AddFile will probably need to create placeholder runcmds and store (filename, contents, mode, runcmds-ref) and then update the refs later.