Make it possible to watch non-existent files

gh-105
gh-9

More testing needed
Merge branch 'master' into gh-105

* master:
  Release 0.10.1
  Don't unwatch removed file in case it comes back
  Handle atomic writes when using fsevents

Conflicts:
	index.js
Exclude fsevents from rm watched file workaround
Merge branch 'master' into gh-105

* master:
  Refactor watched dir tracking

Conflicts:
	index.js
Eliminate duplicate events when polling a file
Prevent double-watching a file
Get new file stats if needed (fs.watch)

When watching individual files, fs.watch calls the listener a bunch of
extra times. So far haven’t found a good way to suppress the extra
change events that result.
Add test for watching individual files
Add test for unlink of watched file

gh-9
Add test for watching non-existent file

gh-105
Fix watching non-existent file in subdir
Minor refactor on non-existent file handling
Prevent fs.watch random events making test fail

occasionally get an extra change on add.txt here
need even more time
Test for unlink, then re-add
Test ensuring only the watched file emits events
Refactor options.persistent handling
Refactor new tests' cleanup code
Merge pull request #163 from paulmillr/gh-105

Improve watching of individual files