Simplify syscall semi-handling under seccomp (~5% performance improvement).

Now the need for sysexit notification is declared statically.
Implicit -r is now deprecated, and -B/-Q options are obsoleted by -R.

The old command-line interface (CLI) is still supported, but users
should consider to switch to the new one:

    =================  =================
    old CLI            new CLI
    =================  =================
    rootfs             -r rootfs
    -B rootfs          -R rootfs
    -B -r rootfs       -R rootfs
    -Q qemu rootfs     -R rootfs -q qemu
    -Q qemu -r rootfs  -R rootfs -q qemu
    =================  =================
Add a logo.
Add an abstract representation of syscall numbers, i.e. abi independant.
Restore guest LD_LIBRARY_PATH when a host program executes a guest program.

Previously, the LD_LIBRARY_PATH was change when executing a host
program was executed by a guest program.  Now, it is restored when the
opposite transition occurs.
Compile with LFS support (large file-system) for 32-bit platforms.

Some file-systems, such as CIFS, use inode numbers that don't fit on
32 bits:

    Note that the UniqueID is a different value from the server inode
    number. The UniqueID value is unique over the scope of the entire
    server and is often greater than 2 power 32. This value often
    makes programs that are not compiled with LFS (Large File
    Support), to trigger a glibc EOVERFLOW error as this won´t fit in
    the target structure field. It is strongly recommended to compile
    your programs with LFS support (i.e. with -D_FILE_OFFSET_BITS=64)
    to prevent this problem.

    -- man mount.cifs

Reported-by: Stephan Hadamik <stephanhadamik@gmail.com>
Ref: https://groups.google.com/forum/?fromgroups#!topic/proot_me/MbO58EYaSng
Add initial support for {s|g}etres{u|g}id syscalls.

This was required by some programs when ran under fake_id0:

    proot-v3.0.2 -B -r rootfs-rhel-5.8-x86_64 -0 xterm
    /usr/bin/xterm: unable to reset effective uid
Don't search the initial command in . if the "./" prefix isn't specified.

Obviously, the initial command is still searched in "." when this
latter is specified in user's $PATH.
Lower the severity of messages about deprecated/obsolete features.
Do not include C files anymore for multi-ABI sysnum support.

Use the new abstract representation of syscall numbers, instead.
Re-enable support for seccomp-filter, it now relies on the internal "sysnum" feature.

The generated BPF program is exactly the same as before.
Merge branch 'sysnums' into next
Don't trust PTRACE_EVENT_CLONE to get the clone flags.

Quoting the ptrace(2) man-page:

  PTRACE_O_TRACECLONE

    This option may not catch clone(2) calls in all cases.  If the tracee
    calls  clone(2) with the CLONE_VFORK flag, PTRACE_EVENT_VFORK will be
    delivered instead if PTRACE_O_TRACEVFORK is  set;  otherwise  if  the
    tracee   calls   clone(2)  with  the  exit  signal  set  to  SIGCHLD,
    PTRACE_EVENT_FORK will be delivered if PTRACE_O_TRACEFORK is set.
Warn when 64-bit programs are terminated with signal 11 under PRoot 32-bit.
Disable seccomp acceleration on-demand and on a per tracee-tree basis.
Make /proc/self/root returns the host path currently used as rootfs.

Note: the host path is not made accessible, this is just for
information purpose.
fake_id0: hook mknod to always succeed
fake_id0: add a test for mknod hook
Ensure AT_RANDOM (ELF auxv) is defined when using -k $release >= 2.6.28.

This was required to run newer glibc (versions >= 2.10?) under older
kernel (versions < 2.6.28).  It now possible to run Fedora 18 programs
on ReadHat 5, for instance.
Improve build portability.