Implement a multiplexed VendorPassthru example

Change the Fake driver to use multiple VendorPassthru interfaces
to demonstrate to third-party driver authors one potential approach
to multiplexing multiple drivers together.

This is particularly useful when combining different power drivers
with the reference PXE driver, which has a component that must be
routed through pxe.VendorPassthru

Change-Id: I321c95454f8169a4990127af5bc94b602bc55aff
Add parameter for filtering nodes by maintenance mode

Boolean parameter 'maintenance' added to API for filtering
nodes by maintenance mode, example:
/nodes?maintenance=false
strutils.bool_from_string() used for converting 'associated'
and 'maintenance' parameters, accepted values now for True
('1', 't', 'true', 'on', 'y', 'yes'), for False
('0', 'f', 'false', 'off', 'n', 'no') case-insensitive.
Refactored dbapi method get_node_list with filters used for
_get_nodes_collection in nodes controller.

Partial-Bug: #1260099
Partial-Bug: #1271291
Change-Id: I01a62eb641316e890d191cf569bb3cf00b7619f2
SSHPower driver support VMware ESXi

Support for VMware ESXi is being added to the Nova baremetal driver.
https://review.openstack.org/#/c/58940/5
This needs to be ported to Ironic's SSHPower driver.

Change-Id: I89635d13114d0a778fc312884099c61a68fc1f8e
Closes-Bug: #1260414
Merge "Implement a multiplexed VendorPassthru example"
Merge "Add parameter for filtering nodes by maintenance mode"