Ensure bindings used to fake /proc/<pid>/auxv are removed once <pid> is dead.

There were not removed previously because a binding is always
referenced by any fs->bindings.{guest,host,pending} lists, unless
remove_binding_from_all_lists() is called against it.
Automatically bind translated socket paths that are too long to shorter paths.

Socket paths can only be 108 bytes long; this limit might be easily
reached with PRoot since the path to the rootfs is always prepended.
A solution is to automatically bind this long path to a shorter path.

This fix support for Libreoffice under CARE and Yocto's pseudo:

How to reproduce:

    $ cd ~
    $ mkdir $(perl -e "print 'a' x 100")
    $ cd !$
    $ git clone http://git.yoctoproject.org/git/pseudo
    $ cd pseudo/
    $ ./configure --prefix=$PWD
    $ make -j 4
    $ proot make test

Before:

    test-chroot: Passed.
    test-dir-move: Failed.
    test-env_i: Passed.
    test-execl: Passed.
    test-pseudo_disable-fork-env_i: Passed.
    test-pseudo_disable-fork: Passed.
    test-pseudo_unload-fork-env_i: Passed.
    test-pseudo_unload-fork: Passed.
    test-reexec-chroot: Passed.
    test-umask: Failed.
    test-xattr: Failed.
    8/11 test(s) passed.
    # + a lot of: "couldn't bind listening socket: Invalid argument"

Now, PRoot is fully transparent:

    test-chroot: Passed.
    test-dir-move: Passed.
    test-env_i: Passed.
    test-execl: Passed.
    test-pseudo_disable-fork-env_i: Passed.
    test-pseudo_disable-fork: Passed.
    test-pseudo_unload-fork-env_i: Passed.
    test-pseudo_unload-fork: Passed.
    Server refused shutdown.  Remaining client fds: 1
    Client pids: 26033
    Server will shut down after all clients exit.
    test-reexec-chroot: Passed.
    test-umask: Passed.
    test-xattr: Passed.
    11/11 test(s) passed.

Reported-by: Christophe Guillon <christophe.guillon@st.com>
Ref: https://github.com/corbinlc/gnuroot/issues/16
Fix a couple of typos in comments.
Don't dereference argv[0] when launching a script through a symlink.

Reported-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Ref: https://bugs.gentoo.org/show_bug.cgi?id=517496

Also, don't complain about non-regular or non-executable files that
are not explicitely candidates.
Fix syscall names for aarch64
Fix portability issues when using Valgrind (make -C tests/ memcheck).
Merge remote-tracking branch 'ivoire/master' into next
Fix build for ARM64 (a.k.a. AArch64).

Note that execution on ARM64 is not officially supported yet, there are
known issues:

  CHECK test-071599da FAILED
  CHECK test-092c5e26 FAILED
  CHECK test-1ffc8309 FAILED
  CHECK test-1ffc8309 FAILED
  CHECK test-5bed7143 FAILED
  CHECK test-5bed7143 FAILED
  CHECK test-kkkkkkkk FAILED

Reported-by: Rémi Duraffort <remi.duraffort@st.com>
Thanks-to: Rémi Duraffort <remi.duraffort@st.com> for the Debian/ARM64 system.
Fix renameat sysexit support.

This bug was exposed by test 5bed7143 on Arm64 only because on this
architecture rename(2) is implemented with the renameat syscall.
Prepare release of PRoot v4.0.2.
test-82ba4ba1: Add support for a new behavior of chroot(1) + fix a typo.

    chroot with an argument of "/" no longer implicitly changes the
    current directory to "/", allowing changing only user credentials
    for a command.

    -- Coreutils-8.23 Changelog

Note that only the behavior of the tool has changed, not the behavior
of the syscall.

Reported-by: Rémi Duraffort <remi.duraffort@st.com>