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"