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
We can change the contract :smile: Just seems like this class (and the interface) is very inconsistent with itself whether it throws or returns nulls/defaults for things. The reason I'm thinking exceptions are acceptable is that if `Exists` returns `false` then why would anyone call any of the other APIs.