Watch for filesystem events instead of polling

Use chokidar rather than fs.watch directly for cross-platform
consistency.