Initial work
commands/up: make sure all names to with_target_vms are strings
providers/docker: create a docker host VM if needed
providers/docker: executor abstraction for driver to eventually support remote
providers/docker: vagrant executor
providers/docker: support creating the machine
providers/docker: status works if host VM is gone
providers/docker: use start fence to get real docker output
core: Call preserves stack ordering
core: support Message post option
providers/docker: Guard some features with HasSSH checks
providers/docker: much better messaging around create/destroy
providers/docker: output the container ID on create
providers/docker: copy the hostmachine Vagrantfile to the data dir
providers/docker: should make host machine before any up action
providers/docker: HandleBox before the host machine
providers/virtualbox: functional_vboxsf to disable vboxsf
providers/virtualbox: synced folder usable method should take 2 args
providers/docker: default machine name to :default
The output of Errors::BoxRemoveMultiVersion is now like
the output of Errors::BoxRemoveVersionNotFound. I think
that's expected.
example output without this patch:
```
$ vagrant box remove berendt/ubuntu-14.04-amd64
You requested to remove the box 'berendt/ubuntu-14.04-amd64' with provider
'virtualbox'. This box has multiple versions. You must
explicitly specify which version you want to remove with
the `--box-version` flag.
Versions: * 0.2.11
* 0.2.12
* 0.2.14
```
example output with this patch:
```
$ vagrant box remove berendt/ubuntu-14.04-amd64
You requested to remove the box 'berendt/ubuntu-14.04-amd64' with provider
'virtualbox'. This box has multiple versions. You must
explicitly specify which version you want to remove with
the `--box-version` flag. The available versions for this
box are:
* 0.2.11
* 0.2.12
* 0.2.14
```