TestCase extension

The VagrantTestCase class automates making vagrant-based tests. It extends the builtin unittest framework in order to be compatible with as many test suites as possible.

This PR reorganizes the vagrant module into a package that maintains the current structure, but adds a vagrant.test module with as few changes as possible.