Add windows userdata

This is a work-in-progress branch.

This branch adds userdata support for windows systems.
Do "runcmd" or "bootcmd" have any use alongside "powershell"? I'm wondering if it's worth exposing this, rather than just treating the contents of runcmd/bootcmd as powershell commands when using RenderWin.