We were one arg short.
Added a new provider for working with Vagrant.
First stab at a Vagrant plugin that adds a rubber provisioner.
Allow setting the SSH key path through an environment variable.
Upgrade existing packages before installing the core ones.

The default Ubuntu 12.04 Vagrant box is unable to install some of the core packages until the apt cache has been updated, so we needed to reverse the order here.
Vagrant uses key auth for SSH, so add another special case.
Allow configuring the roles to use when creating the vagrant instance.
Destroy the vagrant machine by name and force destroy since the user has already indicated to rubber that the destroy shouldhappen.
Use the long command form to be explicit.
Support stopping & starting Vagrant instances.

Note that I switched from using Mutex to Monitor because Mutex isn't re-entrant.  With the lifecycle hooks in place it was too tricky to guarantee there would be no dead locks, so I went with the safer construct, even if it is a tad slower.
Removed a print statement.
Use Generic.instances so other methods we inherit from Generic will work properly.
Allow configuring the Rubber environment in Vagrant.
Only load the Vagrant plugin if running inside Vagrant.
Small clean up.
Added a base config for using Vagrant on new projects.