Bugfix for github issue 2890.
Changing default behavior of vagrant up to enable "cableconnected" on bridged network devices
Applying bugfix for cableconnected issue to earlier releases of virtualbox 4.x series
Fix wording of upload permission error

SCPPermissionDenied expects a path, and this is most likely the
destination (to) and not source (from).

[#2804]
synced_folders/rsync: Install `rsync` on guest if needed

Add new `rsync_installed` and `rsync_install` guest capabilities
to detect and install `rsync`.

Also copy `rsync_pre` capability to all Unix guests.
provisioners/file: Add unit tests for the config
provisioners/file: expand destination path if capable
provisioners/file: add unit tests for the provisioner
Make sure synced folder types are always symbols

This will make sure that plugins that define synced folders after this
config object has been finalized won't have trouble because of
forgetting to use symbols instead of strings.

References https://github.com/fgrehm/vagrant-cachier/issues/76
Update Ansible provisioner to only create a single inventory file

The Ansible provisioner will now only create a single inventory file named,
"vagrant_ansible_inventory". All defined Vagrant machines will be added to
this inventory file. Provisioning will now include a "--limit=#{machine}"
option to scope Ansible provisioning tasks to just the current machine. Setting
the Ansible provisioner's "limit" config option will override the new default
limit. Ansible provisioning scripts will now have access to all other defined
machines and what groups they reside in.
Add new version.txt used to generate installers
Make version 1.5.0.dev for semver

/cc @tmatilai - I modified the vagrant-installers to strpi this.
core: Force bundler usage if in Installer
guests: rename LinuxShellExpandFailed error to ShellExpandFailed

Make the error generic for all guests (`DarwinShellExpandFailed` didn't
even exist) and not tied to synced folder.
guests/{free,net,open}bsd: Add `shell_expand_guest_path` capability
ansible generated inventory: deal with orphan VMs

env.active_machines can potentiall return 'invalid' machines:
- Ignore machines that are not declared in current Vagrantfile
- Warn when machines are missing (it usually occurs when the VM is
  removed without `vagrant destroy` and some orphan metadata remains
  in .vagrant/machines/...)
Ansible Groups: Accept single item as String

Syntax errors in `ansible.groups` definition are not well handled:
Error returned: undefined method `each' for "machine1":String (NoMethodError)

Being tolerant here doesn't hurt and may avoid people get
confused/annoyed.
ansible generated inventory: skip group variables

Except ':children' for groups of groups, it is safer to avoid generating
':suffix' blocks. At the moment Ansible only supports (but doesn't
recommend) group variables (:vars), and the Vagrant Ansible provisioner
won't support this way to define variables.
provisioners/ansible: Document new default limit

- explain new default ansible.limit
- shift `ansible.groups` part to Inventory section
- change/add inventory examples
Merge pull request #2925 from fgrehm/ensure-synced-folder-types-are-symbols

kernel/v2: Make sure synced folder types are always symbols internally
Merge pull request #2922 from tmatilai/file_provisioner_expand_path

provisioners/file: expand destination path if capable