Make std.file.isFile, isSymlink and their unittests safe

`std.file.isFile`, `isSymlink`, a unittest for `isFile` and a unittest for `isSymlink` on Windows systems do not contain any unsafe operations.
On Posix systems, a unittest for `isSymlink` contains the use of an unsafe function `core.sys.posix.unistd.symlink` but we can verify that it can be trusted.

How do we know that `path1.ptr` and `path2.ptr` are always null-terminated?