synthetic: allow to specify parameters for each level

node:2(memory=56000) l2cache:2(size=22000) pu:2
synthetic: allow specifying root attributes

(memory=50000) cache:2(size=10000) pu:2
synthetic: remove first_cpu argument from the build loop, the os_index is already available
synthetic: add support for forcing objects' os_index

The attribute is indexes=x,y,z,...
The number of values must exactly match the total width of the level.
synthetic: allow to specify indexes as interleaving loops

indexes=8*2:4*2 specifies that we nest 2 interleaving loops:
one loop with 2 steps with 8 between each,
then one loop with 2 steps with 4 between each.
PU#0 and #1 will be 8 PU away, and PU#0 and #2 will be 4 PU away.
synthetic: also specify interleaving by type

PU:4(indexes=sock:numa) means PU indexes are distributed
by socket first, then by NUMA node.
synthetic: add hwloc_topology_export_synthetic()

Add some flags to export to basic strings supported in previous hwloc releases
(no extended types before 1.9, no attributes before 1.10).

Index interleaving is only reported with numbers, not with types, but it doesn't
matter much as long as we report something correct.

Use this in lstopo.
lstopo: add --export-synthetic-flags to allow going back to old synthetic formats
synthetic: tests for new attributes and exporting
synthetic: doc updates about attributes and export function