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
providers/docker: build output [GH-3739]
core: prefer providers in the Vagrantfile [GH-3812]
core: fix failig test around choosing default provider
core: Environment#default_provider can look into machines
core: Call default_provider with the machine for commands
core: clean up default logic
Update CHANGELOG
website/docs: document new provider lookup logic
core: VirtualBox is no longer the fallback, not hardcoded anywhere

This commit finally removes all traces of VirtualBox defaults from
Vagrant core. Vagrant now completely relies on its automated provider
detection to pick the best and most relevant provider that is available
on the system and for a specific development environment.

A "vagrant up" on one development environment might prefer VirtualBox,
another might prefer Docker. As a result of this commit (plus the few
prior), the developer doesn't need to know anymore and doesn't need to
specify a `--provider` flag. Vagrant just figures out the correct
provider.

Yay. :)
website: clarify default provider
test: fix test for default provider
hosts/bsd: only use sudo if we can't write /etc/exports [GH-2643]
core: provision-with works with provisioner IDs [GH-2850]
core: provisioners are defined differently now
core: cleaner output of what provisioner is running if named
website/docs: update docs for new provisioner style
Merge pull request #4700 from mitchellh/f-provisioner-names

Named Provisioners
update CHANGELOG
update listen dep