Modifying CompilerCache to use IFileSystem.Watch

Fixes #1708
I think the trigger would additionally perform the same checks we have today - it'll only cause a cache eviction if the disk based checks we used to perform determine the file has been modified.