Instances with NUMA will be packed onto hosts

This patch makes the NUMATopologyFilter and instance claims on the
compute host use instance fitting logic to allow for actually packing
instances onto NUMA capable hosts.

This also means that the NUMA placement that is calculated during a
successfull claim will need to be updated in the database to reflect the
host NUMA cell ids the instance cells will be pinned to.

Using fit_instance_to_host() to decide weather an instance can land
on a host makes the NUMATopologyFilter code cleaner as it now fully
re-uses all the logic in VirtNUMAHostTopology and
VirtNUMATopologyCellUsage classes.

Closes-bug: #1386236
(cherry picked from commit 53099f3bf23d0d160fc690a90cf4f32506adf076)

Conflicts:
	nova/compute/manager.py
	nova/tests/unit/compute/test_claims.py
	nova/tests/unit/compute/test_resource_tracker.py
	nova/virt/hardware.py

Change-Id: Ieabafea73b4d566f4194ca60be38b6415d8a8f3d
Merge "Instances with NUMA will be packed onto hosts" into stable/juno