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.
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
kernel/v2: capture error if provider config is bad [GH-2959]
core: Machine can set box
core: keep the same UI when handling a box URL
core: HandleBox keeps the same machine instance
website/www: feature preview blog post: rsync
website/www: ignore the standalone archive page
website/www: force up the version
website/www: fix downloads
core: Modify Bundler settings to work with restricted permissions

This includes two changes:

1. Change the Vagrant requirement to use the "= VERSION" constraint.
   The "path:" previously requires write permission in the directory
   of the gemspec, which we don't have in installers.

2. Set a BUNDLE_APP_CONFIG and BUNDLE_PATH setting. By setting this,
   Bundler won't ask for sudo password. Bundler never actually needs it;
   it is just overly aggressive in thinking it does.
core: chomp the version so we can echo into it
core: poll for process exit on SSH#exec with subprocess
core: make sure any Subprocess exits no matter what
guests/linux: public key insertion is more robust

contents can have newlines (or not)
Up childprocess dep to 0.4.1
core: use Process#wait since childprocess bug is fixed