core: improve debug cpuset checks

Slightly improve the code added in 45c94c336d828210b2e7fe8cfd6c528066567bc5
tests/hwloc_insert_misc: more inserts, with misc inside misc
BGQ: add a single NUMA node instead of putting the memory in the root object
synthetic: always enforce a NUMA level

Insert a NUMA level if none were given.
Use arity of one in the parent to avoid modifying the given synthetic topology.
xml: some code factorization to ease upcoming commits
tests: fix missing nodesets/cpusets in test-hwloc-compress-dir files
xml: check the sanity of cpusets/nodesets vs type and parents

* only I/O and misc may have no cpuset
* obj cannot have cpuset/nodeset unless the parent has one
* root must have a cpuset
xml: add a NUMA node if the input XML doesn't provide one

XMLs from hwloc < 2.0 may contain no NUMA nodes and nodesets, enforce
one NUMA node with nodesets.

hwloc_xml_backend_data_s (shared by XML plugins) is modified but the field
that are changed/moved are only touched by the core, so no ABI break here.

tests/hwloc/hwloc_insert_misc.c temporarily uses a synthetic topology
until the core adds missing NUMA node as well (otherwise reimporting
from XML will get an additional NUMA node).
xml: add default allowed/online cpu/nodesets if missing

It completes previous commit by adding missing nodesets on pre hwloc-2.0 non-NUMA XML.

And it also fixes existing XMLs with some missing sets.
core: insert a NUMA node P#0 at the end of discovery if no NUMA node exists yet

And move the root memory there.

Revert the temporary change in tests/hwloc/hwloc_insert_misc.c
added 2 commits ago, not needed anymore, both core and XML add
missing NUMA nodes when needed.
core: don't allow ignoring of NUMA nodes

lstopo cannot work-around it since ignoring intermediate boxes
but still showing their contents is much harder.
Hopefully, we assume people will unlikely want to remove NUMA nodes
from the graphical output
(while removing PUs can be useful on non-hyperthreaded machines).
debug: check there is one and only one NUMA level
core: NUMA level priority is as high as PU, and higher than Machine now

Not sure it actually matters since NUMA nodes cannot be ignored anymore,
but still better for consistency.
core: Remove add_default_object_sets() now that we're always NUMA

We always have nodesets before calling this, now.
Remove all tests about the depth of the NUMA level, we always have one

No need to emulate a single NUMA node anymore when talking to libnuma.
doc: we always have a NUMA level
doc: remove XML outputs

They take too much room without bringing much useful information
since it's not human readable.
They would be even bigger now that we always have NUMA nodes
and nodesets.

Just reference the XML section instead.
debug: update cpuset/nodeset debut assertions in hwloc_topology_check()

* I/O have no sets. Misc, it depends. others always have
* you have one if and only if you have all others cpu/nodesets
* parent nodesets are made of children, with additional bits
  for NUMA nodes