Modifying CompilerCache to use IFileSystem.Watch

Fixes #1708
What other forms of invalidation would you want? Perhaps they could be built into the trigger.