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 "add" events

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 ;-)