Lightweight, flexible file watching