Add support for fitting instance NUMA nodes onto a host

This commit adds the methods needed to enable fitting instances onto
NUMA nodes. It adds fit_instance_to_host() method to the
VirtNUMAHostTopology class that will do the fitting returning the
instance topology with it's cells assigned to the cells of a given host.

This method will be used in the scheduler and claims and will obsolete
the need for claim_test method which will be removed in subsequent
commits.

It is worth noting that after we transition filter and claims to use the
methods added to this patch - it will no longer be possible for an
NUMA-aware instance to be over-committed against itself no matter what the
over-subscription ratios are.

Partial-bug: #1386236
(cherry picked from commit d13205fb6036a6c7d66de350cb226dd0f9ee12d9)

Conflicts:
	nova/tests/unit/virt/test_hardware.py

Change-Id: I5fb6814778c2790cdd8892f756a33763b8f4a712
Merge "Add support for fitting instance NUMA nodes onto a host" into stable/juno