Reuse validate_instance_and_node() Nova ironic Driver

The driver already counts with a function called
validate_instance_and_node() that checks which node is associated to
a given instance and raises InstanceNotFound if the instance UUID is
not found in Ironic. The same functionality was being duplicate in many
other parts of the driver, this patch simply update those parts to use
the validate_instance_and_node() function.

Change-Id: I9a2f90c7cdd0fdfcc00d49a49581c61e4f073888
Driver interface's validate should return nothing

Some of the driver interface's validate(), eg pxe.VendorPassthru.validate()
returns True. The expected behaviour is for them to raise an exception if
validation isn't successful, or return nothing if validation succeeds.

This is fixed.

The docstrings for the validate functions in the base class have been updated
to mention that they should return None.

Change-Id: Ic8fb626874ed6cb11494c84dc184d70686441b0f
Closes-Bug: #1288363
Let ipmitool natively retry commands

Instead of calling ipmitool multiple times on failure via
  utils.execute(*args, attempts=3)
allow ipmitool to use its own native retry behavior with -N.. -R..
if those options are supported by the installed version of ipmitool.
This will fall back to a single run of ipmitool on older versions,
which should be fine -- it defaults to retry several times anyway.

This patch adds a configurable min time between retries, which is used,
in conjunction with the ipmi retry time, to determine these option's
values. It will be further leveraged in a subsequent patch as well.

It also adds a note in the deployer docs about known issues with
the openipmi project.

Change-Id: I7a4ff941144a03bd441459561efb68760391da1a
Partial-bug: #1320513
Factoring out PXE and TFTP functions

Multiple drivers need to support neutron and Ironic's PXE and TFTP
server. Factoring them out into a common file will make that
transition possible. This moves all the generic calls into neutron
and reconfigures the PXE driver to work with the new functions.

Change-Id: I181ffabe673636b628329592e623e6425da54d6d
Merge "Driver interface's validate should return nothing"
Merge "Let ipmitool natively retry commands"
Test for membership should be 'not in'

Enabled check for PEP8 issue E713.

Change-Id: Id41f5f19796a7af8cf4cb52dd7afc2e6ec1ccbc4
Remove 'node' parameter from the validate() methods

The node parameter is redundant since the node object is an attribute
of the task object.

Closes-Bug: #1312632
Change-Id: Ia4193ea561a31e54754049d9964c6c9021474caf
Merge "Test for membership should be 'not in'"
VendorPassthru.validate()s call _parse_driver_info

ipmitool's and seamicro's VendorPassthru methods use the parameters that
their _parse_driver_info() validates. Yet their VendorPassthru.validate()'s
weren't calling _parse_driver_info() to make sure that needed parameters
were specified/valid.

ipmitool's and seamicro's VendorPassthru.validate()s now call
 _parse_driver_info().

Change-Id: Ic6196bcc13024b914c04d35868f3d5f10e73f420
Closes-Bug: #1312383
Merge "Remove 'node' parameter from the validate() methods"
Merge "Reuse validate_instance_and_node() Nova ironic Driver"
Merge "VendorPassthru.validate()s call _parse_driver_info"
Merge "Factoring out PXE and TFTP functions"