Add unit tests to cells conductor link

Adding unit tests to verify ConductorTaskRPCAPIRedirect
and compute/api.py are properly hooked.  If they become out
of alignment then calls can be potentially ignored.  We can't
blindly error in the case of ignoring as this is used
legitimately in other cases.

Change-Id: Iec02d4a5906a5851c1e9c8258a2d77f908ec65bc
Partial-Bug: 1348642
Enhance PCI whitelist

While keeping the existing PCI passthrough functionality intact, this patch
makes the following enhancements:

* allows aggregated declaration of PCI devices by using '*' and '.'
* allows tags to be associated with PCI devices.

A whitelist entry is defined as:
["device_id": "<id>",] ["product_id": "<id>",]
["address": "[[[[<domain>]:]<bus>]:][<slot>][.[<function>]]" |
"devname": "Ethernet Interface Name",]
"physical_network":"name string of the physical network"

<id> can be a '*' or a valid device/product id as displayed by the linux
utility lspci. The address uses the same syntax as it's in lspci. Refer to
lspci's manual for its description about the '-s' switch. The devname can be
a valid PCI device name. The only device names that are supported in this
specification are those that are displayed by the linux utility ifconfig -a
and correspond to either a PF or a VF on a vNIC. There may be 0 or more tags
associated with an entry.

If the device defined by the address or devname corresponds to a SR-IOV PF,
all the VFs under the PF will match the entry.
For SR-IOV networking, a pre-defined tag "physical_network" is used to define
the physical network that the devices are attached to.

Multiple whitelist entries per host are supported as they already are. The
fields device_id, product_id, and address or devname will be matched
against PCI devices that are returned as a result of querying libvirt.

Change-Id: I96e3e0174fa79ef9dd0ffbec172ba1c0420a37f8
Partially Implements: blueprint pci-passthrough-sriov
Merge "Enhance PCI whitelist"
Merge "Add unit tests to cells conductor link"