(19852) Vagrant support in the test harness

Adds support to the test harness for Vagrant boxes.

Also redesigns how vms are provisioned by creating a network_manager which manages hypervisors, with each type of hypervisor being a subclass of hypervisor.  Makes for more sensible code.