Use Ironic exceptions and json
Adding Overlords agent-client

Also adding in some errors and encoding from teeth-rest. I simplified the
agent client to be its own object.

Conflicts:
	ironic_teeth_driver/rest.py
Adding Overlords agent-client

Also adding in some errors and encoding from teeth-rest. I simplified the
agent client to be its own object.
Implement the TeethDeploy driver for Ironic

The design here is that the agent will boot via PXE and check in with with the
driver to see what it needs to do. We control this with node.provision_state
and node.target_provision_state. Thenode will be told it needs to decom,
cache, or run an image. The reason for the change is conductor doesn't
seem to be running on gevent so async is out. We still need to write an API
controller to let the node talk to the driver, and a TeethPower driver to
power on/off the machines.
Adding deploy driver
Using ironic IPMIPower driver for deploy
Removing TeethPower, using ipmitool from Ironic
Adding deploy_data as param
Adding wait option for driver commands
Adding force for cache_image