Replace `Path` with `PathFragment` in `FileSystem` interface.

`FileSystem` interface currently takes a `Path` object for all of its
operations. `Path` internally contains a `FileSystem` reference and the path
string itself. Passing `this` instance as part of the parameter makes the
interface more complicated than needed (in fact, we would never use that).
This, for example, results with unnecessary complexity in `DelegateFileSystem`
which recreates the `Path` objects just to call methods on the delegate.

Refactor the `FileSystem` interaface to take a `PathFragment` instead.

PiperOrigin-RevId: 361569044
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
index 28557c4..51dd6fb 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
@@ -118,7 +118,7 @@
     setupRoot(
         new CustomInMemoryFs() {
           @Override
-          public byte[] getDigest(Path path) throws IOException {
+          public byte[] getDigest(PathFragment path) throws IOException {
             return path.getBaseName().equals("unreadable") ? expectedDigest : super.getDigest(path);
           }
         });
@@ -177,7 +177,8 @@
     setupRoot(
         new CustomInMemoryFs() {
           @Override
-          public FileStatus statIfFound(Path path, boolean followSymlinks) throws IOException {
+          public FileStatus statIfFound(PathFragment path, boolean followSymlinks)
+              throws IOException {
             if (path.getBaseName().equals("bad")) {
               throw exception;
             }