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 
The reason I didn't is that if the path itself is watched, there's no need to run the `some` operation looking for watched parent paths, so I didn't want to calculate it prematurely. But I agree this could use some refactoring - moving it into a helper function or something.