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 
This is going to be a bigger one as file names are case-sensitive on non-windows platforms. To imitate the actual underlying file system, the physical file system needs to know when to apply case sensitivity. I discussed with @Tratcher @loudej about this and that will be discussed/addressed separately.

As such with this implementation, if a consumer subscribes change alert for `a.txt`, but if the file `A.txt` is changed, the callback is going to be fired resulting in some inefficiency, but it should not cause harm.