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 
Since instantiating the trigger is inexpensive, couldn't you write this as 
`expirationTrigger = _triggerCache.GetOrAdd(pattern, new FileChangeTrigger(pattern));`. I don't see a reason to have the lambda?