A Deployer.change_node_state method for starting and stopping applications as required

We've:
 * Implemented Deployer.change_node_state for starting and stopping the applications in order to reach a desired node state.
 * It returns a DeferredList which fires when all those operations have completed.
 * We call `Deployer.change_node_state` from `ChangeStateScript.main` using the supplied deployment configuration and the hostname which has been supplied by the controlling `flocker-deploy` script.
  * Also renamed `Deployer.start_container` to `Deployer.start_application`, since that's what it does.

Fixes #252 
We should really respect the privacy naming convention.