Windows encodings fixes

These small fixes allow Vagrant to run under non-ASCII Windows usernames.
As it turns out, Windows uses different encodings in different parts of itself and none of them are UTF-8 :)
After these patches, `vagrant init` completes successfully.