Use `fs.watchFile` because it doesn't run into EMFILE issues

Mac OS X has issues when you get beyond a few hundred files, and how to fix it is spotty, requires changes to environment configuration, and inconsistent across different versions of Mac OS X. This uses `watchFile` instead, which works more consistently with the tradeoff of CPU.