libvirt: set NUMA memory allocation policy for instances

When NUMA placement is in effect, Nova configures KVM guest vCPUs
to be placed on certain host NUMA nodes. It also provides guest
NUMA topology of vCPUs and RAM. The kernel will normally satisfy
memory allocations from the host NUMA node that the guest vCPU
is running on, but this is only a preference. Nova needs to set
a strict policy to guarantee guest RAM is always allocated from
the desired host NUMA node. This change ensures that by setting
the XML

  <numatune>
    <memory mode='strict' nodeset='0-1'/>
    <memnode cellid='0' mode='strict' nodeset='0'/>
    <memnode cellid='1' mode='strict' nodeset='1'/>
  </numatune>

Closes-bug: #1385308
Change-Id: I02c301ae648235dc48527559a5d3c3d45de859ac
Merge "libvirt: set NUMA memory allocation policy for instances"