vNUMA domain configuration and construction.

Defines VM config options for vNUMA PV domain creation as follows:

vnodes - number of nodes and enables vnuma
vnumamem - vnuma nodes memory sizes
vnuma_distance - vnuma distance table (may be omitted)
vcpu_to_vnode - vcpu to vnode mask (may be omitted)

sum of all numamem should be equal to memory option.
Number of vcpus should not be less that number of vnodes.

Changes since v1:
- fixed types for unsigned int structure members;
- improved config parsing;
- added disabling of automatic NUMA placement with vNUMA topology
being correctly defined;
- fixed vcpu_to_vnode parsing to check for all nodes being defined
at least once;
- two functions added for vcpu_to_vnode and vdistance initialization;
- added check for pinned cpu and domain cpupool when constructing
vnode_to_pnode map;
- fixed vNUMA node 0 alignment to match e820 map of domain;
- fixed value for NUMA_NO_NODE;

Signed-off-by: Elena Ufimtseva <ufimtseva@gmail.com>
xl config documentation for vNUMA.

Signed-off-by: Elena Ufimtseva <ufimtseva@gmail.com>