provide clrk_save handler for SIGUSR1 signal

When a clerk instance is running but the user has no access to it (e.g.,
because he/she is logged in remotely and clerk is running in a different
session), it might still be desireable to terminate this instance and
start a new one. However, until now the user had no chance to save any
changes he/she made in clerk beforehand.
This change introduces a signal handler for SIGUSR1 that can be used to
save the changes that were made previously.
add SIGTERM and SIGINT support

When clerk is killed by SIGTERM or SIGINT it performs no cleanup and exits the
hard way. State such as the cursor visibility or the current console colors
are not reset to their original values.
This change adds a handler for SIGTERM and SIGINT. Arguably, a handler for
SIGINT is not really required since Ctrl+C (the usual way to receive a SIGINT)
is already taken care of by termbox. However, since there might be other ways
to send this signal to clerk an exit handler is registered for it as well.