Make Instance.save() update numa_topology

This is needed so that we can actually update the given topology with
the updated data after a successful claim.

Deleting it will also be needed when we actually make the resize work
properly for instances with NUMA topology, so we add it here as well.

We do not expose the new InstanceNUMATopology methods as @remotable to
avoid having to bump the object version thus making this an easier
backport target. This is OK since they are only called from
Instance.save() which is @remotable, and can be trivially made remotable
should this be needed later (causing a version bump that need not be
backported).

Change-Id: I64ff2d00ca20bd065bb17ebaa9c40b64b8cbb817
Partial-bug: #1386236
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.

Change-Id: Ieabafea73b4d566f4194ca60be38b6415d8a8f3d
Closes-bug: #1386236
Remove VirtNUMAHostTopology.claim_test() method

Previous patches in this series remove the need for this method, so this
patch removes it.

We also remove the can_fit_instances() method which is now part of the
get_fitting_for_instance().

Change-Id: Ieb285bd7e06ea5c5bfc429ccad856272e147f885
Merge "Make Instance.save() update numa_topology"
Merge "Instances with NUMA will be packed onto hosts"
Merge "Remove VirtNUMAHostTopology.claim_test() method"