Add Vagrant config.

At the moment this uses VirtualBox, I'll look at changing it to
another time.

Vagrant crash course:

`vagrant up infra1` - Create/Start the "infra1" vm and try to provision it
`vagrant provision infra1` - After making changes, try to re-apply them to "infra1"
`vagrant ssh infra1` - SSH into "infra1" as the vagrant user
`vagrant ssh-config infra1` - Show ssh settings for "infra1"
`vagrant halt infra1` - Shut down "infra1"
`vagrant destroy infra1` - Destroy "infra1" as we no longer need it

I've setup the Vagrantfile to look for a Vagrantfile.local yaml file
to allow changing some settings (such as which groups the nodes are
assigned to, or the actual nodes themselves).

At the moment the nodes come up with an natted internet-breakout network
(eth0) and a private internal network (eth1). The latter is probably
un-needed for us, if so I'll remove it.

Probably also want to make the memory-per-vm configurable at some point
as well.