communicators/ssh: more verbose output about waiting for SSH
communicators/ssh: properly allow errors through while waiting
providers/virtualbox: only clear forwarded ports if there are any
core: ui can hide details
Add support for multiple role paths in chef-solo
Added handling of fixnum values for shell provisioner options both as the value
of `args` itself and as an element inside of an `args` array. Added validation
around passing in arrays for arguments. Just knowing that it is an array is not
enough, because arrays can contain any other type.
Added unit test for passing a single fixnum as an argument to the shell
provisioner
Removed excess whitespace
Merge pull request #2982 from ryanuber/shell_fixnum_args

provisioner/shell: shell provisioner fixnum args
provisioners/shell: clean up fixnum handling
Add backwards compatibility for older versions of chef that do not support multiple role paths.
detect latest version of coreos
more robust coreos checking
Merge pull request #2985 from eugeneware/latest_coreos_support

guests/coreos: detect latest version.
core: copy all sub-directories in a box properly

This avoids an Errno::EACCES on windows, although I'm really unsure why.
core: disable parallelization if only one action
provisioners/chef: DRY and unify encrypted data bag secret handling

Pull up encrypted data bag secret management into the base classes, thus
also unifying the functionality.

Especially this complements the issues:
  * Upload the secret to provisioning path also with chef-solo [GH-1246]
  * Delete the secret also with chef-client [GH-2712]
  * Remove the secret before uploading also with chef-client [GH-1111]
provisioners/ansible: Fix Group Management

- Support arbitrary depth of "groups of groups of ... groups"
- Skip ':vars' suffix, but allow group names with ':' (yes, Ansible
  accepts this character)
- Like for groups of machines, groups of groups can result "empty", but
  it is not an issue for Ansible. Recursive filter on the group tree is
  a bit hard to implement, and don't brind real added value at Vagrant
  level.
provisioners/ansible: Change --limit behaviours

- The implicit default limit is always set
- ansible.limit as an empty string won't disable the default limit, but
  will be passed as "--limit=" argument and ansible-playbook will return
  an error (provided host list is empty)
provisioners/chef: set `encrypted_data_bag_secret` to `nil` if it's not uploaded

/cc @shanegibbs

Fixes #2984