Add pre-built PRoot manual page to sources.

That way, there's no need to generate it again when creating a
package.
Fix a couple of portability issues.
Re-enable heap emulation support on x86.

This support was historically disabled because it exposes a serious
problem (all tests fail) on http://build.opensuse.org.  After some
tests, this problem appears only on some [AMD processors, hypervisors]
couples.  I was not able to investigate this AMD/hypervisor/heap bug
correctly (no remote shell on build.opensuse.org), and the heap
emulation support is required when ASLR is disabled (as it's now the
case), so I re-enable it.  With luck (hum!), no one will ever hit this
bug.
Update PRoot's roadmap & changelog.
Revert "Make pop_component() return removed component".

Quote: The function pop_component in PRoot's path/path.c doesn't seem
       to correctly handle the case when the path argument has only
       one component, say "/usr".  I can't figure out what the right
       thing to do in this case is, though: it seems like you would
       both want to leave the string as "/" and return "usr" as the
       last component, but there's no placement of a \0 byte that
       would have that effect.  When the component is of length 2 or
       more, it seems like only the return address is affected: For
       instance on "/usr" it will set the string to "/" and return
       "sr" instead of "usr".  But in the further corner case where
       the first component is only one character long, the assertion
       "assert(offset + 1 < length)" will fail causing PRoot to
       terminate.

       -- Stephen McCamant https://github.com/cedric-vincent/PRoot/issues/59

Reported-by: Stephen McCamant <mccamant@cs.umn.edu>
Investigated-by: Stephen McCamant <mccamant@cs.umn.edu>
Fix a couple of portability issues, again.
Fix a memory corruption in a test.
Prepare release of PRoot v4.0.0.
Don't canonicalize named file descriptors that reference special objects.

Named file descriptors may reference special objects like pipes,
sockets, inodes, ...  Such objects do not belong to the file-system.
Relax some assertions in ptrace emulation support.
Update PRoot changelog.
Prepare release of PRoot v4.0.0 (2/2).
When executed by the root user, skip tests that assume no privileges.

Reported-by: Rémi Duraffort <remi.duraffort@st.com>
Fix support for accessat(2) and fchmodat(2): they have only 3 parameters, not 4.

For faccessat(2) and fchmodat(2) syscalls, the fourth parameter is
*not* used by the kernel, only the libc uses it.  As a consequence,
PRoot shall ignore this flag.

This bug was exposed by the following command:

    proot -S stage3-amd64-hardened+nomultilib-20140710 emerge util-linux

when Gentoo's sandbox is enabled.
Set $PWD to the value specified by the -w option, for the sake of consistency.

Quote:

  Some lines of shells are sometimes better than lengthly explainations:

    $ mkdir -p /tmp/a
    $ cd /tmp/a
    $ proot -b /tmp/a:/test -w /test bash -c 'pwd'
    /tmp/a

  This should output `/test`. It seems that the directory change is
  not done is this particular case. It indeed does if the current working
  directory is different than the one being bind-mounted:

    $ mkdir -p /tmp/a
    $ cd /tmp
    $ proot -b /tmp/a:/test -w /test bash -c 'pwd'
    /test

  -- Jérémy Bobbio https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756935

As of my understanding, the Bash "pwd" builtin returns the content of
$PWD as-is when both the inode of "." and the inode of $PWD are the
same:

  $ mkdir -p /tmp/a/b
  $ cd /tmp/a
  $ env PWD=/tmp/a/b/.. proot -b /tmp/a:/test -w /test bash -c 'pwd'
  /tmp/a/b/..

This is the case when $PWD is bind-mounted to the path specified by
the -w argument. A workaround was to unset PWD before starting
PRoot. The solution is to make PRoot set PWD to the path specified by
the -w argument.

Reported-by: Jérémy Bobbio <lunar@debian.org>
Ref: https://github.com/cedric-vincent/PRoot/issues/64
Fix a portability issue in test-dddddddd.sh on Debian-based systems.

The "-e" option of realpath does not exist on Debian-based systems but
it doesn't return a failure...

Reported-by: Rémi Duraffort <remi.duraffort@st.com>
Prepare release of PRoot v4.0.1.
Fix typo: s/Rémy/Rémi/
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