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
While we're refactoring these, could you also make these types public? There's not much of a reason for them to be private inner types, is there?