Adding ability to monitor file changes for PhysicalFileSystem

1. This includes the implementation & tests.
2. A modified IFileInfo interface (This will require changes to MVC repo - A PR will be sent out after this changes are approved.).
3. File system watcher turns off when there are no files to monitor and turns on when files are to be monitored.
4. Need to add a test to verify that file system watcher turns off if no files to monitor.

@Tratcher @pranavkm 
If multiple files change at the same time, it is possible multiple threads will try to check for `_triggerCache.Count == 0` at the same time and try modify `EnableRaisingEvents`. Putting this in a together in a lock statement will streamline threads in checking for count and modifying `EnableRaisingEvents`.