Create the basic provider plugin interface.

Non-functional at this point.
Add the #action API to the provider plugin
Add the "provider" API to the V1 plugin.
Vagrant::Machine

This is the class that will represent a machine that is managed by
Vagrant. The class has a number of attributes associated with it and is
meant to be a single API for managing the machines.
Machine queries state from the provider
Machines can call actions on their providers.
Logging statements to Vagrant::Machine
Fill in the provider API a bit more to what it is.
Move drivers to the VirtualBox plugin. Use Machine class.

This starts the transition of replacing VM with Machine. Machine still
isn't ready to fully replace VM but by moving it now, I'm able to find
the spots that need to be fixed. At this point `vagrant status` works
with the new provider interface.
Remove the action registry feature.

This can be removed since in the future all actions will come from the
providers or something. There are still issues with box actions but
we'll get back to that later...
Goodbye, instance_eval on Vagrant::Action::Builder!
Building up the `destroy` action again using new provider API.

This shows me moving the built-in middleware sequences to the provider
and how I'm organizing all that.
The `Call` built-in middleware allows for conditional MW sequences.

Read the documentation for more information.
Added untar_failure locale.
Added already_exists locale.
You can no longer set env vars on Builders via `use`
Added the Confirm built-in middleware

This middleware asks the user a question and expects a Y/N answer. This
middleware can be used with the Call middleware.
Destroy sequence asks the user for confirmation.
Call now only yields the environment
Start moving the halt commands over to the new provider interface