provisioners: Import Docker provisioner code from Vocker
provisioners/docker: Simplify raising of Docker related errors
provisioner/docker: Add missing I18n
provisioners/docker: Clean up some leftovers from vocker
core: check for Ruby 2.0
core: use keyword args to simplify BoxCollection#add
core: support checksum on box add
core: output UI when checksumming
kernel/v2: support checksum on box config
website/docs: document box checksum flags
website/docs: document checksumming from Vagrantfile
core: do proper type conversions for box checksum types
core: require file checksum for box add
Revert "core: check for Ruby 2.0"

This reverts commit 9be6b4f0d3fb12ba4d85b54b5afc19f9d7a4c772.
Revert "core: use keyword args to simplify BoxCollection#add"

This reverts commit 4281af338f7d2d1a75c102233fab0e699eaab3a2.
Add cleanup routine to synced folder plugin implementation
core: Retrofit some test for Method support on Action::Runner
core: Fix hooking when using a `Method` object as a callable on action runner
providers/virtualbox: support DHCP interfaces for NFS

Previously, we required a host-only interface with a static IP for NFS
to work in VirtualBox, because we needed access to the guest's IP in
order to properly configure mount commands.

After boot, VirtualBox exposes the IP addresses of a guest's network
adapters via the "guestproperty" interface.

This adds support for reading VirtualBox guest properties to the
VirtualBox driver and utilizes that support to prepare NFS settings,
which removes the necessity for a static IP for NFS to work.

In this commit we also start building out scaffolding for unit testing
vbox actions and drivers.

Test plan:
 - Prepare a Vagrantfile with the following:
   * private network with type: :dhcp
   * synced folder with nfs: true
 - Boot a VM from this Vagrantfile using the virtualbox provider
 - Machine should boot successfully with working synced folder
Loosen net-ssh dependency [GH-2573]