Dealing with external libraries that don't restore old signal handlers

By running some C code we can compute the sizeof(struct sigaction) and currently that is 152 bytes on Linux.

I suspect that we can obtain this directly by parsing the C header signals.h or more specifically bits/sigaction.h.

Nonetheless, the above approach will probably work. One might want to leave a buffer in case sigaction has additional fields that are just zero valued.