RFC: Implementing Deploy Driver

Sorry for the mess of commits here (from depending on two different branches). This implements the deploy driver with tests. prepare will do the image caching, and deploy does the prepare and run image commands. Tear down sets the node state and reboots the machine. When it reboots, it should ping our vendor API and see it is in state DESTROYING, with a goal of being DESTROYED, and start decomming itself.

We'll need to modify the agent to not do caching if it's already cached the image the API requests it to cache. Prepare (cache) is called right before deploy by nova. Ideally, we'll call prepare through nova beforehand (or side-step Ironic to do the caching).