Rename `PathFragment#getSegments` to `splitToListOfSegments` and perform another pass to migrate unnecessary callers.

The renaming makes it clearer that it is not a simple getter method, but rather one that requires string operations that can be costly in aggregate.

There is an overload of `ArtifactRoot#asDerivedRoot` where callers seem to unnecessarily split up a path fragment only for it to reconstruct one and call the other overload. Those calls are fixed to use the more efficient overload.

Switched some test calls to `segments()` where the assertion is equivalent. Hopefully this will encourage that method to be preferred.

PiperOrigin-RevId: 359761371
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
index 6f8967c..ccc1c09 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
@@ -552,14 +552,14 @@
     assertThat(create("/a/b").segmentCount()).isEqualTo(2);
     assertThat(create("/a/b/c").segmentCount()).isEqualTo(3);
 
-    assertThat(create("").getSegments()).isEmpty();
-    assertThat(create("a").getSegments()).containsExactly("a").inOrder();
-    assertThat(create("a/b").getSegments()).containsExactly("a", "b").inOrder();
-    assertThat(create("a/b/c").getSegments()).containsExactly("a", "b", "c").inOrder();
-    assertThat(create("/").getSegments()).isEmpty();
-    assertThat(create("/a").getSegments()).containsExactly("a").inOrder();
-    assertThat(create("/a/b").getSegments()).containsExactly("a", "b").inOrder();
-    assertThat(create("/a/b/c").getSegments()).containsExactly("a", "b", "c").inOrder();
+    assertThat(create("").splitToListOfSegments()).isEmpty();
+    assertThat(create("a").splitToListOfSegments()).containsExactly("a").inOrder();
+    assertThat(create("a/b").splitToListOfSegments()).containsExactly("a", "b").inOrder();
+    assertThat(create("a/b/c").splitToListOfSegments()).containsExactly("a", "b", "c").inOrder();
+    assertThat(create("/").splitToListOfSegments()).isEmpty();
+    assertThat(create("/a").splitToListOfSegments()).containsExactly("a").inOrder();
+    assertThat(create("/a/b").splitToListOfSegments()).containsExactly("a", "b").inOrder();
+    assertThat(create("/a/b/c").splitToListOfSegments()).containsExactly("a", "b", "c").inOrder();
 
     assertThat(create("a").getSegment(0)).isEqualTo("a");
     assertThat(create("a/b").getSegment(0)).isEqualTo("a");