fix subprocess external encode issue. https://github.com/mitchellh/vagrant/issues/3706

in io.rb
 subprocess resuts convert external encoding to utf-8

in subprocess.rb
 command line argument convert utf-8 to  external encoding
Set disabled even if no disabled option

to override the previous settings
Revise the unit case, too
Fixed issue 3729

The logic used to read the file contents sometimes would leave lines behind unread. It now defaults to reading all lines and counts each line it has actually read.
Merge pull request #3803 from mitchellh/issue-3729

guests/windows: change elevated shell output to better get output
providers/docker: Fix SSH access to container when no Host VM is in use [GH-3799]
Inverting the hash of driver_mac_addresses returned by machine.provider.capability(:nic_mac_addresses).

The previous code expected the hash to use the mac addresses as the keys, the original code had the indices as the keys.
Adds minimal implementation to deploy a Salt minion on Windows including support for pre-seeding the keys
redirect output of mkdir statement to out-null in bootstrap-salt.ps1
sometimes salt-minion wouldn't start - this seems stable so far across 10 deploys
core: only set ID on machine if data dir [GH-3827]
Update CHANGELOG
core: WaitForCommunicator always asks for state

This forces global-status to be up-to-date typically
synced_folders/rsync: rsync__chown [GH-3810]
core: cygwin_path only uses cygpath in cygwin [GH-3804]
providers/docker: don't use graceful shutdown [GH-3798]
Merge pull request #3783 from YungSang/topic

kernel/v2: set disabled to false whenever synced folder override
Update CHANGELOG
guests/darwin: respect NFS mount options [GH-3791]
providers/docker: retry container ssh command [GH-3763]