extra checks for unreliable fs.watchFile()

`fs.watchFile` is a bit of a joke in terms of cross-platform reliability. I've added an `fs.exists()` check in there just to be sure that the file actually exists.