Fix a race condition that leaved the last tracee's child untraced.

If the last tracee forks then exits *before* its child has made at
least one syscall, then the number of tracees might reach zero.  As a
consequence PRoot exists too, leaving this child process un-traced.

Reported-by: Clément BAZIN <clement@bazin-fr.org>
Re-introduce the "ignore ELF interpreter" option, hidden though.

This option was initially a workaround for what I called the "look
ma', no [heap]" kernel bug:

    $ /lib64/ld-linux-x86-64.so.2 /usr/bin/grep heap /proc/self/maps
    7f56d3bf0000-7f56d3c32000 rw-p 00000000 00:00 0               [heap]

    $ ulimit -s unlimited
    $ /lib64/ld-linux-x86-64.so.2 /usr/bin/grep heap /proc/self/maps

I've removed this option because I'd found a more generic workaround:
set the hard stack limit to a not-so-high value.

It appeared later that this option has an interesting property: it
ensures argv[0] is kept unchanged since there's no need to specify to
the ELF interpreter the [uncanonicalized] path to the executable
(unlike QEMU, ld-linux.so hasn't an option to force argv[0]).  This
behaviour is useful for validation purpose (the Coreutils testsuite
compares hard-coded argv[0] strings) and for some plugins.
Adjust the "package download" URL, OBS now use the lowercased name.
Update the roadmap.
Add and extend the "Downloads" section in the user-manual.
Adjust keywords in the manual: QEMU user-mode, rootfs.
Add a path comparison function, finally.

String comparison can't be always used to compare paths, for instance
the two following paths are equal: "/bin" and "/bin/".
Rename binding->real/location to binding->host/guest, respectively.

There's no code change.
Fix support for "/" in asymmetric bindings.

Commit 0238c7f1 introduced a regression, moreover binding.c wasn't
migrated to the new path length policy yet ("/".length == 1 not 0).
Extract get_binding*() functions from substitute_binding().

No functional changes.
Change the heuristic regarding bindings and the detranslation of symlinks.

This commit adjust the heuristic introduced in commit 8e5fa256.  Now,
bindings are resolved during detranslation of a symlink if:

    * it belongs to "/proc", since it always points to the emulated
      file-system namespace by design; or

    * it belongs to a binding and points to the same binding.  For
      example, if "-b /lib:/foo" is specified and the symlink "/lib/a
      -> /lib/b" exists in the host rootfs namespace, then it should
      appear as "/foo/a -> /foo/b" in the guest rootfs namespace for
      consistency reasons.
Let the kernel decide when there's no more tracee.

Process creation/destruction events aren't synchronous, so PRoot has
to be lazy regarding this kind of information.
Revert "Fix a race condition that leaved the last tracee's child untraced."

This reverts commit 1879fe95 since it was deprecated by commit
d6b077b9.
Force success when changing the root directory to "/" when -0 is specified.

This should make pacman (the Arch Linux package manager) happy when
installing package in the current rootfs, i.e. "/".
Make nested bindings safer, "nested" from guest point-of-new.

Keep bindings sorted so as to make the substitution of nested bindings
determistic, ex.:

    -b /bin:/foo/bin -b /usr/bin/more:/foo/bin/more
Make nested bindings safer, "nested" from host point-of-new.

Prefer the deepest binding, deepest from the host point-of-view, so as
to make the substitution of nested bindings determistic, ex.:

    H$ proot -b /:/host-rootfs -b /tmp ...
    G$ readlink /tmp/link_to_tmp_foo
    /tmp/link_to_tmp_foo -> /tmp/foo

instead of:

    H$ proot -b /:/host-rootfs -b /tmp ...
    G$ readlink /tmp/link_to_tmp_foo
    /tmp/link_to_tmp_foo -> /host-rootfs/tmp/foo
Remove the pkg/ directory + add man-page + small updates in doc/.