Wait for power off state before calling discovery done

Change-Id: I2a14b02978a7253e814a5e365462215d055839b8
Implements: blueprint returning-to-ramdisk
Refactoring: consolidate standard plugins in one module

Introduces module ironic_discoverd.plugins.standard.
Moves currently unused handling of ramdisk error to a plugin.

Change-Id: I3dff43e27e5354b3f4155f005b7bc66897f81ec4
Refactoring: drop features incompatible with Kilo changes

Dropped are:
* Check for on_discovery field (superseded by node_cache)
* Forcing maintenance mode (Juno UI does it anyway)

Change-Id: Icdb76d7ee3163873c805cf7658749b7212948f26
Refactoring: split discoverd.py into 2 modules

Wrote some missing tests as well.

Change-Id: I2d4d4619cb5825422cb2fc684f7cd028f99b991d
Refactoring: cap complexity at 15 and coverage at 90

Change-Id: I6e4de72ee6a3ecc825fe959b289d7e7e83e01bb9
Refactoring: split test.py and rewrite tests for process

Tests for process.py completely rewritten to be more 'unit'.

Moved one function from utils that does not belong there
and fixed small issues uncovered by the new tests.

To simplify migration, prevent Python from writing bytecode
during testing.

Change-Id: Ie2c5d9217982620ba62f8105cf8e4b2cfaefe885
Require manual power on if ipmi_setup_credentials is set in Node.extra

Don't request Ironic to power on the node and don't validate power interface.

Change-Id: I8963c844f7bd2faef10115db56c5dc595d0c9643
Implements: blueprint setup-ipmi-credentials
Support updating IPMI credentials from within ramdisk

If ipmi_setup_credentials is set to true in Node.extra, return
desired credentials back to the ramdisk and wait for power management
interface to pass validation.

Unfortunately, due to newly revealed problems, this is reverting
a big part of blueprint returning-to-ramdisk.

Change-Id: I63976d01f265d18c385f6a30f1f2884c58ca5a43
Implements: blueprint setup-ipmi-credentials
Retry on Conflict exceptions from Ironic

Retried is everything, except get and list calls and port creation
(for which Conflict is an expected exception).

Unit tests are added for the most critical cases.

Change-Id: I92675c3d72a2f598c4e0d1ae8b0a4a4aa0a2ed12
Closes-Bug: #1401222
Review and fix logging messages

Fixes levels and wording for many messages.
Also adds a couple more helpful messages.

Change-Id: Ib134d9483a29f961e4472c0c007405caa0fbc19f
Closes-Bug: #1401585
Wait for power off before finishing discovery

This used to be part of returning-to-ramdisk, but was lost after
revert. Also do not make the ramdisk wait for it's own power off.

Change-Id: Ia43f834023b189324cba38a19cc782fc0b7745d4
Closes-Bug: #1401872
added an eDeploy plugin

It receives eDeploy's hardware discovery to classify hardware
according to hardware profiles and extract the needed information for
the configuration of the node.

Change-Id: I11b4cf21ec81ce8efd3222597a5226fe260721e2