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.

The `read_guest_property` implementation is the same for all versions of
the virtualbox driver, and it is more of a "plumbing" sort of method, so
we add it to Base and test it there.

The `read_guest_ip` methods are also identical in every vbox driver
version, but to follow convention found in similar externally accessed
methods, we add copies to each version.

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