libvirt: consider vcpu_pin_set when choosing NUMA cells

When we get a single NUMA cell instance scheduled to a NUMA capable
host, we do not account for  cpu_pin_set when choosing viable cells for
the given instance. meaning we could choose a NUMA cell that has no
viable CPUs which we will try to pin to.

This patch changes that behaviour and also adds a test to prevent a
regression. We also fix up how some of the tests mock the random.choice
method, because now we give it a list of sets (of cpus), but also
because it is now easier to catch a regression since we actually use the
passed value.

Change-Id: I0d740170db52a4777924648683ac98de9cf4b3cf
Closes-bug: 1372845
Merge "libvirt: consider vcpu_pin_set when choosing NUMA cells"