fix: launcher kill method which was throwing an error if no callback was specified
bug introduced in https://github.com/karma-runner/karma/commit/8647266fd592fe245aaf2be964319d3026432e33

In server.js when singleRun = true, no callback is passed to when a browser complete to launcher.kill so if a browser is not yet connected but one has already finished the process throw an error.

TypeError: undefined is not a function
    at process._tickCallback (node.js:415:13)
fix(watcher): improve watching efficiency

This fix significantly improves watching performance. It tells chokidar to
ignore all paths that do not match any of the watched patterns.

Before we were only ignoring paths that match some of the excludes patterns.
That means that even files that didn't match any of the watched patterns were
still watched by chokidar and ignored on the level of `fileList`.

Note, this fix requires chokidar 0.7.0

Closes #616
feat(watcher): ignore initial "adds"

Initially all the patterns are scanned using glob. Then we start watching then with chokidar. Chokidar now allows to ignore initial "add" event, which was ignored by the fileList anyway.
fix(watcher): ignore double "add" events

On linux, `fs.watch` (which chokidar uses when `usePolling: false`)
fires "add" events twice. This change makes `fileList` to ignore the
second event.
feat(config): add usePolling config

This config option is forwarded to chokidar. When set to `true` (default value is `false`), chokidar uses `fs.watch` instead of stat polling.

This seems to be finally working well on linux, however it does not work on Mac.
See https://github.com/paulmillr/chokidar/issues/62

That's why I'm leaving it undocumented ;-)