Add generic_signal() handler, which sets toys.signal and writes byte to toys.signalfd if set.
diff --git a/toys.h b/toys.h
index c59c3c5..6666cfb 100644
--- a/toys.h
+++ b/toys.h
@@ -23,6 +23,7 @@
 #include <regex.h>
 #include <sched.h>
 #include <setjmp.h>
+#include <signal.h>
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
@@ -125,6 +126,8 @@
   int exithelp;            // Should error_exit print a usage message first?
   int old_umask;           // Old umask preserved by TOYFLAG_UMASK
   int toycount;            // Total number of commands in this build
+  int signal;              // generic_signal() records what signal it saw here
+  int signalfd;            // and writes signal to this fd, if set
 
   // This is at the end so toy_init() doesn't zero it.
   jmp_buf *rebound;        // longjmp here instead of exit when do_rebound set