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 
We generally say that for non-public types to use whatever access modifiers make sense *if* the class were public. That makes it clearer to a consumer what the intended access is. Then if a class becomes public (which we often do), there's little (if any) additional work to do.