Add library of VirtualBox functions

This changeset adds a library of functions for interacting with
VirtualBox via VBoxManage. It contains functions for creating and
booting VMs, taking snapshots, configuring disks, networking, and
shared folders.

In addition, its vm_attach_guestadd-iso can ask VirtualBox for the
guest-additions ISO and, if that fails, look for it on the local
filesystem or download the correct version from virtualbox.org. On
Windows (wbatch), the function relies on VirtualBox providing the
guest-additions ISO (which on that platform appears to be a safe bet).

Partial-Bug: 1312764
Implements: blueprint openstack-training-labs
Change-Id: Id5529432eba01bd1e3e67a1d64b7517efd1966d0