Send an event when the child closes the control fd

Instead of replying with a fake response to calls that do not return
(exit, exec), send an event indicating the child's control fd has
closed and allow the erlang driver to interpret the meaning of the
event.
Fix signal handling in calls

There is a race condition in signal handling that gives invalid
responses to calls on some systems:

    in function alcove_seccomp_tests:'-kill/1-fun-2-'/2 (test/alcove_seccomp_tests.erl, line 76)
    **error:{assertEqual_failed,[{module,alcove_seccomp_tests},
                         {line,76},
                         {expression,"Reply1"},
                         {expected,{'EXIT',{termsig,sigsys}}},
                         {value,ok}]}

        alcove_seccomp_tests:77: kill...*failed*
    in function alcove_seccomp_tests:'-kill/1-fun-4-'/2 (test/alcove_seccomp_tests.erl, line 77)
    **error:{assertEqual_failed,[{module,alcove_seccomp_tests},
                         {line,77},
                         {expression,"Reply2"},
                         {expected,{error,esrch}},
                         {value,ok}]}

The failed tests indicates the parent process has seen the child
process' control fd has been closed but the child process has either not
yet terminated or the termination status has not been propagated to the
parent.

There are 2 types of calls: calls that return a value and calls that
never return such as execve(2), execvp(2) and exit(2).

For calls that do not return, the closing of the child's control fd
indicates success.

For all other calls, the child should not exit. If the parent generates
a "fdctl_closed" event on behalf of the child, the erlang process blocks
until a termsig event is received.