* The viewer now sends `SIGHUP` to the main process when it exists
* The main process signal handler kills the viewer and terminates the
notifier/main event loop when receiving `SIGINT`/`SIGTERM`/`SIGQUIT`
* The main process signal handler just terminates the notifier/main
event loop when receiving `SIGHUP`
* Clean just after the notifier/main loop finishes
The CLD signal handler cleaned the ini file leading to another CLD
signal, which called the handler again etc.
Replace this by just killing the main process after the viewer exists
in the code for the fork.
Also note that we don't know which child process exited in the CLD
signal handler. This might be the viewer, but also rubber.
* Remove the .err-file if the compile was succesful.
* Watch the directories of the files that should be watched
instead of the files themself.
* Look for CLOSE_WRITE events instead of MODIFY. This makes
rubberin compatible with vim/gedit/ispell/svn/git/etc.