Task object as paramater to validate() methods

Add the task object as parameter to the validate() methods of the
driver interfaces. Some driver validation might need access to the other
resources apart from the node, e.g PXE and the SSH driver need to check
if the node has a port associated with it, because they need a MACAddress
to work (generate the config files, etc...)

Related-Bug: #1272045
Change-Id: I5cb311f89ea62c3b860f361cdf60251dd35e0245
PXE and SSH validate() method to check for a port

The PXE and SSH server depends on a MACAddress to work, before the
validate() method of the PXE and SSH drivers didn't check whether the
node had a port associated with it or not making it possible to start
a provision/power state change without and address that would fail. So,
this patch is improving the validate() method of the PXE and SSH driver
to check for a port.

Closes-Bug: #1272045
Change-Id: I1e8deb91558478973b280ed25bf3b90da4e2b045
Merge "Task object as paramater to validate() methods"
Merge "PXE and SSH validate() method to check for a port"