Add claims testing to VirtNUMAHostTopology class

This will allow us to use NUMA topology information from hosts and
instances when making resource claims for scheduling and migrating
instances.

This patch adds the VirtNUMALimitTopology class and corresponding
cells class that are used to represent the limits, and a method
claim_test() on the VirtNUMAHostTopology class that does the checking.

Blueprint: virt-driver-numa-placement
Change-Id: Ic21d559edf292e5b5dc1bba966e10ec4af0f706e
libvirt: start lxc from block device

Currently, lxc containers can be started only from an image.
Adding support to start lxc containers from block device volumes.

Separating the lxc disk handling code from _create_domain to _lxc_disk_handler
that will use block_device_mapping and will handle the pre and post lxc start
actions on the disk, both for images and volumes.

Implements blueprint libvirt-start-lxc-from-block-devices
Change-Id: Ia980f65384af2818f46d2e91df46f131b2ce3a77
Libvirt-Enable support for discard option for disk device

Support setting discard option for instance's disk.
If discard option is enabled, unused/freed blocks can be return back to the
storage device.

blueprint libvirt-disk-discard-option
DocImpact: Add a new configuration in nova.conf

Change-Id: Ic87b9348a2e441d5df0b468bb88ec6e77f8b4ce2
Merge "Add claims testing to VirtNUMAHostTopology class"
Merge "libvirt: start lxc from block device"
Merge "Libvirt-Enable support for discard option for disk device"
Block sqlalchemy migrate 0.9.2 as it breaks all of nova

This is breaking nova unit tests

Change-Id: Ic82d787e41f7b6d6153d3c6b19902cc11a1c43bb
Closes-Bug: #1368391
Make sure libvirt VIR_ERR_NO_DOMAIN errors are handled correctly

Some libvirt VIR_ERR_NO_DOMAIN errors leak outside of the libvirt
driver, which may result in instances being set to ERROR state.

Make sure such errors are either ignored (during destroy) or
otherwise turned into InstanceNotFound errors.

Change-Id: I0ac2989062247a05162825760367488f4f90bd04
Closes-Bug: #1368404