Add pci_device_pools to ComputeNode object

The compute_nodes table has a field called pci_stats
that is used to pass pci device availability to the
scheduler. The pci device data is obtained by the virt
drivers and passed to the resource tracker in the available
resource data. The resource tracker creates pci device pools
to track the number of similar devices as a resource.

The pci_stats field contains the pci pool data.

A new object versioned called PciDevicePool has been created
for the pci device pool data. The pci_device_pools field is added
to the ComputeNode object as a PciDevicePoolList object.
The type of the field is:

    ObjectField('PciDevicePoolList')

The format that the PciDevicePool object uses to store data in the
database is made backward compatible with the existing format.

There was an alternative patch by yjiang5 that does not version
the data in the field, this patch replaces that one. The original
can be found here Ifde89b209f2fcc2283894195b1e7e866cf28dccb

Co-Authored-By: Paul Murray <pmurray@hp.com>
Co-Authored-By: yunhong-jiang <yunhong-jiang@intel.com>
Co-Authored-By: Ed Leafe <ed@leafe.com>

Change-Id: I625f13061fddfb0cdb16c8e36336656b40696447
Merge "Add pci_device_pools to ComputeNode object"