don't catch SIGINT unless watch task is invoked

this just moves the `process.on('SIGINT', ...)` block inside the task
callback. the problem is that it currently handles SIGINT even when the
task isn't being run, which could affect other tasks that want to use
that signal.

i ran the 'jshint' and 'nodeunit' tasks, and this doesn't seem to have
broken anything.