Add windows userdata

This is a work-in-progress branch.

This branch adds userdata support for windows systems.
I'm fine with having just one function. In general, if possible, I'd prefer if the differences can be hidden in that sort of way: one task-specific function that either calls out to platform-specific versions or just checks GOOS inline.