Modifying CompilerCache to use IFileSystem.Watch

Fixes #1708
Any downside to making this lazy? (enumeration of files). I'm thinking about sites where a view is never requested, we could avoid building this cache entirely.