Gracefully exit on SIGINT

As requested in #1055 

I'm unsure if this should be default behaviour, or if you should opt-in, or if you should be able to opt-out.

For now i've just made it built-in