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
Fix wrong test fixture for Node.properties

Currently db.utils.get_test_node() generate Node.properties with
wrong keys. This patch fixes it.

Change-Id: I17ea664528c121d643a55df6266ee2bb1027b171
Set a more generous default image cache size

Master images of non-trivial filesystems will run 3+G (even though
the qcow2 might be < 1G) so we need to make it big enough to be useful
:). Ideally we'd autotune this based on free space or something, but
for now, this is large enough to cache e.g. TripleO cluster workloads
but small enough to fit in test VMs. This patch sets the default cache
to 20G.

Change-Id: I11ca629589e8a90f727abcc5b1c7e72dbd9e4b0f
Merge "Set a more generous default image cache size"
Merge "Make ComputeCapabilitiesFilter work with Ironic"
Merge "Fix wrong test fixture for Node.properties"