Update utils to support pin multiple threads to one node

If physical host doesn't have enough node for pinning,
we might pin multiple threads to one node.

This patch changes the utils to support pin multiple
threads to one node.

Signed-off-by: Amos Kong <akong@redhat.com>
Change the pin strategy if host doesn't have enough nodes

We might launch multiple guests in one physical host,
each guest has many vcpus and vhost threads, some external
processes also need to be pined to a single node in some
tests (eg: netperf).

In some physical host, it doesn't have enough nodes.
After supported multiple-queue, the condition gets worse.

This patch addes a pin strategy for different condition.

| if #vcpus_threads + #vhosts_threads < #numa_nodes
|     each vcpus/vhosts thread will be pined in one node
| else if #vcpus_threads < #numa_node
|     each pair of vcpu & vhost threads will be pined in one node
| else
|     do nothing

Signed-off-by: Amos Kong <akong@redhat.com>