Use signalfd() and select() to wait for the child.

We want to wait for more events later and select() is the way to do it.
Signal the main PID when initialization finished.

When the child process exits before initialization has finished,
we exit with an error message.
Implement --daemonize (-d) option

When this option is set, the appjail process exits when the child has
finished initializing. Standard input, output and error of the child
are redirected to /dev/null, setsid() is called and we double-fork
as is common in UNIX daemons.
Introduce --initstub (-i) option
Update command help
Introduce the --keep-fd option to keep certain file descriptor open after executing the command.
Start with a clean environment by default.

The option --no-clean-env allows disabling this behaviour, the option --keep-env
allows keeping selected environment variables.