Split code into separate modules

index.js was getting a bit too big. 

Would appreciate a code review on this. Particularly regarding whether https://github.com/paulmillr/chokidar/blob/split/index.js#L297-L304 is a bad idea.

I was also just thinking about whether to move the three new files (and perhaps index.js also) into a `lib` dir.

Regarding changing `isBinaryPath` to `isBinary` - that method has never been documented and a github code search seems to indicate nobody is using it anyway.

@paulmillr