relix, Genie:  Rename caught_signal to signal

We're going to use the same mechanism to detail with fatal signals (i.e.
signals that are not caught and terminate the process), so a new name is
called for.

Also rename the signo field to number.
relix, Genie:  Add terminate_current_process()
Genie:  Handle fatal signal exceptions at boundary

Anticipate a thrown fatal signal in {enter,leave}_system_call().
Genie:  Throw fatal signals instead of terminating

When an uncaught fatal signal is received, throw an exception (unwinding
the stack) instead of terminating the thread immediately.  This will let
us store scoped objects on the stack while blocking (e.g. half-open FIFO
endpoints) without leaking them if a fatal signal occurs (e.g. SIGTERM).
Merge branch 'throw-fatal-signals'
relix:  Add FIFO endpoint filehandles, open_fifo()
Genie:  Actually open FIFOs
Genie:  Fix FIFO icon

Make the edges entirely black.