Make ComputeCapabilitiesFilter work with Ironic

It is not currently possible to selectively associate a Nova flavor
with certain nodes in Ironic, beyond variances in the cpu/ram/disk.

The ComputeCapabilitiesFilter exists in Nova for just this purpose,
but the nova.virt.ironic driver is not propagating the correct
data up to the scheduler.

This patch parses the node.properties['capabilities'] as a series of
comma-separated k:v pairs and passes them up to Nova so that it can
be matched against flavor.extra_specs['capabilities'] by the
scheduler filter.

Co-Author: Matthew Gilliard <matthew.gilliard@hp.com>
DocImpact: adds the ability to specify multiple capabilities
           to a node for scheduling purposes
Closes-bug: 1339816
Change-Id: Ide39f4a2796b169025bf0083e021166ae35f30f8
Merge "Make ComputeCapabilitiesFilter work with Ironic"