rename oslo.concurrency to oslo_concurrency

oslo.concurrency-0.3.0 has moved its path to oslo_concurrency,
the old path oslo.concurrency can still work but is deprecated now.

Change-Id: I2b2b362f766bb82058af6f9ed92189165aa9a629
Closes-Bug: #1398656
Merge "rename oslo.concurrency to oslo_concurrency"
Add base state machine

This creates the ironic.common.fsm module, which was imported from
TaskFlow and modified to fit the use-case of Ironic, and adds a model of
our current states to the ironic.common.states module.

Notable changes from the fsm.py module in TaskFlow are:
- removing the table printing dependency
- basing exceptions on Ironic's exception class names (which, it turns
  out, are almost identical)
- add is_valid_event() method
- allowing the state to be passed when initializing a FSM
- allowing shallow copies of state machines
- adding target-state-tracking to fsm.py

Related-To: blueprint new-ironic-state-machine
Co-Authored-By: David Shrewsbury <shrewsbury.dave@gmail.com>
Co-Authored-By: Chris Krelle <nobodycam@gmail.com>

Change-Id: I813e60563c3e5124e31183b9322152df830b2f8e
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.

Related-To: blueprint new-ironic-state-machine
Change-Id: If2bb15c8300d28551946ff6053da6713faaadb4b
Add new enrollment and troubleshooting doc sections

Add a new Enrollment section to the install guide, explaining
the process of adding Nodes to Ironic.

Add a minimal Troubleshooting section as well, with some basic info
that can be expanded upon later.

Change-Id: I6299aae2b9e7511c61456a7619b9d4e521e48897
Merge "Add new enrollment and troubleshooting doc sections"