Refactoring IFileSystem

Making AssemblyNeutral and creating .Interfaces package
Changing semantics of string property to be relative
Updating tests
Changing return value to be always non-null with Exists property
I just took over the code as it is from Louis and what was before. NotFoundFileInfo, NotFoundDirectoryinfo, PhysicalFileInfo are purely for the sake of PhysicalFileSystem returning messages. Per my understanding PhysicalFileSystem cannot be made to take a different type for these file infos. So if someone attempts to extend this it has to be purely for their new file system. In that case these public types may not add a lot of value as it just contains a minimal implementation of IFileInfo interface. I believe that's why they were private before. I can make these public if that will be useful. @Tratcher thoughts?