core: allow backends to reuse a cached uname info when adding uname string infos

And ignore any empty uname field in case the backend gives incomplete info.
Linux: allow to read uname from fake fs root

Read a new "fake" /proc/hwloc-nofile-info where we can store things
that cannot be saved as a file. Put the output of uname there when
gathering the topology and use it on input to overwrite local or
missing data.

This improves testing under tests/linux by allowing architecture
specific code to run from fake fsroot. Will be useful for advanced
cpuinfo parsing.

We manually remove /proc/hwloc-nofile-info in test-gather-topology.sh
because it only partially brings fake fsroot information.
Removing it creates the same !is_thissystem() output from the fake
fsroot and from the real machine.

Once we gather other information in /proc/hwloc-nofile-info:
* sysconf(_SC_LARGE_PAGESIZE);
* hwloc_getpagesize();
* hwloc_fallback_nbprocessors(topology);
we may be able to really use /proc/hwloc-nofile-info in test-gather-topology.sh
and really discover the exact same thing from the saved topology and
from the original machine. We'll see that later.
Linux: prepare for gathering more than just the main cpu model name

Pass some structures between functions instead of a single cpumodel pointer.
Linux: use the uname architecture to better match cpumodel information

Look at the uname architecture to select which cpuinfo parsing function
will be used.
For now, we have one for x86/x86_64/mic, one for ia64 and one for arm.
Others (or when the architecture is unknown, when fsroot was changed
and there's no /proc/hwloc-nofile-info) fallback to the default "dumb"
parsing function.
Linux: add CPUVendor/CPUModelNumber/CPUFamilyNumber on Linux x86, x86_64, ia64 and Xeon Phi

Uses the uname architecture to properly match /proc/cpuinfo fields.

Requested by Ralph Castain.
tests/linux: add /proc/hwloc-nofile-info with Architecture field to some tarballs to test the new CPUVendor/... code