Changed FileSystem members to be virtual

When hosting scriptcs you often have to customize the `FileSystem` - but you typically need to only override only a method or two (like getting current directory). Right now you have to implement the entire `IFileSystem` interface.

Changed all members to virtual to simplify this process.