Refactor all ctor callsites of PathFragment to instead call a static 'create' method.

This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment).

This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations.

RELNOTES: None

PiperOrigin-RevId: 152145768
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
index e2aebba..2a6f85e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java
@@ -94,9 +94,9 @@
   @Test
   public void testHandlesUnprocessedDiffs() throws Exception {
     Path pathEntry = root.getRelative("pathEntry");
-    ModifiedFileSet diff1 = ModifiedFileSet.builder().modify(new PathFragment("file1")).build();
-    ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(new PathFragment("file2")).build();
-    ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(new PathFragment("file3")).build();
+    ModifiedFileSet diff1 = ModifiedFileSet.builder().modify(PathFragment.create("file1")).build();
+    ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(PathFragment.create("file2")).build();
+    ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(PathFragment.create("file3")).build();
     DiffAwarenessStub diffAwareness =
         new DiffAwarenessStub(ImmutableList.of(diff1, diff2, diff3, DiffAwarenessStub.BROKEN_DIFF));
     DiffAwarenessFactoryStub factory = new DiffAwarenessFactoryStub();
@@ -134,12 +134,12 @@
         new DiffAwarenessStub(ImmutableList.<ModifiedFileSet>of(), 1);
     factory1.inject(pathEntry, diffAwareness1);
     DiffAwarenessFactoryStub factory2 = new DiffAwarenessFactoryStub();
-    ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(new PathFragment("file2")).build();
+    ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(PathFragment.create("file2")).build();
     DiffAwarenessStub diffAwareness2 =
         new DiffAwarenessStub(ImmutableList.of(diff2, DiffAwarenessStub.BROKEN_DIFF));
     factory2.inject(pathEntry, diffAwareness2);
     DiffAwarenessFactoryStub factory3 = new DiffAwarenessFactoryStub();
-    ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(new PathFragment("file3")).build();
+    ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(PathFragment.create("file3")).build();
     DiffAwarenessStub diffAwareness3 = new DiffAwarenessStub(ImmutableList.of(diff3));
     factory3.inject(pathEntry, diffAwareness3);
     DiffAwarenessManager manager =
@@ -217,7 +217,7 @@
   private static class DiffAwarenessStub implements DiffAwareness {
 
     public static final ModifiedFileSet BROKEN_DIFF =
-        ModifiedFileSet.builder().modify(new PathFragment("special broken marker")).build();
+        ModifiedFileSet.builder().modify(PathFragment.create("special broken marker")).build();
 
     private boolean closed = false;
     private int curSequenceNum = 0;