proc_parse: parse mnt_id from /proc/PID/fdinfo/FD

It will be used for restoring files from proper mounts.
namespaces: dump mount namespaces before tasks

because we want to check, that all files are reachable.
For that we need to collect all mounts from all namespaces.
mount: save mount tree for each namespace

It will be used to check, that a file is reachable.
files: save mnt_id on fd_param
files: save mnt_id for reg files
fix mount: save mount tree for each namespace
files-ids: generate id-s accoding with mnt_id, st->st_dev and st->st_ino

One device can be mounted a few times, so files are identical only,
if they have the same mnt_id.
servicefd: add a service fd for current root

It's already used for dumping files and it will be used for restoring,
so it should be service fd to avoid intersection with restored
descriptors.
restore: look up root for each file
zdtm: mark all mounts as private for one call
zdtm: reexec the mountpoints test in a target mntns

Otherwise it will have external files (from another namespace,
which isn't dumped).
files: open ghost file relative to the proper root
zdtm: check opened files in a second mntns
mount: print error message if readlinkat failed
mount: add a fast path for mntns_collect_root

Don't open the save root in a second time.
mntns_collect_root is called for each file, but ussually files of one
process belongs to one mount namespace.