Fix: use non block waitpid to lookup child state

When daemonizing the session daemon, if the child fails *before* it
could set the recv_child_signal variable that indicates the parent to
exit, the parent process gets in an infinite loop never returning.

This commit fixes that by adding a non blocking waitpid() that monitors
the status of the child so it can exit if the child failed.

Acked-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>