Add windows userdata

This is a work-in-progress branch.

This branch adds userdata support for windows systems.
whoa, please, no, this is even worse than panicking. IMO you should *never* call os.Exit anywhere but in a main func in a main package...