Add a SIGINT handling mixin

Inspired by @glenbot's pull request