Last batch of filesystem code for now, added MakeSymlink and GetPid, removed other todo functions for the time being.
Also fixed some bugs:
-Linux IsLink() implementation not using lstat = broken
-File::IsClosed() would crash if file were created via default constructor or null handle
-Remove() and RmDir() on Windows were inconsistent with Linux - in Linux all symlinks are removed with Remove() even if they point to directories. Forced windows to work the same way.
-Asked RmTree to please not descend into symbolic links to directories, but just to remove them, thanks.
-Removed starting \\?\ from result of RealPath() on Windows
-Fixed IsFile() on Windows just not working - assuming anything that's not a directory is a file now.
-Fixed StringBuilder only printing the first character if you passed it type char* instead of type char const*