main: Handle SIGINT properly.

As explained by http://www.cons.org/cracauer/sigint.html

TL;DR: If a process catches SIGINT in order to do some cleanup before exiting, it should kill itself with the default SIGINT handler once cleanup is done.