Watch files for changes

I'd assign this to a field like `mutex`, since this will expose `Lock`, `RLock`, etc. as public methods on `FileDependency` and you probably don't want users calling those.