Significant refactor. Add configurable provisioner

* Slightly engineer the project. Only a little ;)
* Adds pluggable provisioning backends.
* Added a CloudProvisioner backend to shell out to Puppet Labs Cloud Provisioner to create new vmware instances and classify them.