Begin using the state machine for node deploy/teardown

Start using the state machine:
- first, add a process_event() method to TaskManager
- then, use it for both do_node_deploy and do_node_tear_down
- finally, add it to cleanup_after_timeout

This simplified both methods in ConductorManager, and also exposed a few
shortcomings in unit tests.

Change-Id: If2bb15c8300d28551946ff6053da6713faaadb4b
Refactor async helper methods in conductor/manager.py

This patch performs multiple refactorings of conductor/manager.py:
- re-arrange a few class methods without changes
- move some async helper methods out of the ConductorManager class:
    _do_node_deploy, _do_node_teardown,
    _provisioning_error_handler, _power_state_error_handler
- move _do_sync_power_state out of the main class.
  However, this required returning the count instead of simply updating
  self.power_state_sync_count, so a few test changes were required.

Change-Id: I07497228cafab73df12253a5e652069a0a9918cb