Temporarily remove uncaughtException listeners.

Remove these listeners while Karma is running, so that Karma gets a
chance to stop the browsers it started, in case a framework raises
an error or the user presses Ctrl-C.

fixes #93
Listen for SIGINT and stop the process.

Karma listens for SIGINT and disconnects all servers if interrupted.
As a side-effect, interrupting the current process causes Karma to stop
but nothing else. Any pending Grunt tasks will still run.

Since Grunt does not listen to SIGINT itself, the expected behaviour
is that the process exits with code 130. We simulate this by listening
for SIGINT and calling process.exit() when Karma finished.
Use this.files, let Grunt do the file matching.

But merge with `options.files`, so we can specify some files that
should be available in all test-targets.
Document usage with Grunt's file config
Only add options if they are specified
Merge branch 'use-grunt-file-resolution' into master-patched

* use-grunt-file-resolution:
  Only add options if they are specified
  Document usage with Grunt's file config
  Use this.files, let Grunt do the file matching.
Merge branch 'fix-stray-browsers' into master-patched

* fix-stray-browsers:
  Listen for SIGINT and stop the process.
  Temporarily remove uncaughtException listeners.