Make QueryEnvironment#getTargetsMatchingPattern pass its result to a callback.

This is the third step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should also be a functional no-op.

--
MOS_MIGRATED_REVID=111620668
diff --git a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
index beba2f3..c63e00d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
@@ -35,6 +35,7 @@
 import com.google.devtools.build.lib.query2.engine.QueryEvalResult;
 import com.google.devtools.build.lib.query2.engine.QueryException;
 import com.google.devtools.build.lib.query2.engine.QueryExpression;
+import com.google.devtools.build.lib.query2.engine.QueryUtil.AggregateAllCallback;
 import com.google.devtools.build.lib.util.BinaryPredicate;
 import com.google.devtools.build.lib.util.Preconditions;
 import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory;
@@ -233,7 +234,9 @@
         reportBuildFileError(caller, e.getMessage());
       }
     }
-    return getTargetsMatchingPattern(caller, pattern);
+    AggregateAllCallback<T> aggregatingCallback = new AggregateAllCallback<>();
+    getTargetsMatchingPattern(caller, pattern, aggregatingCallback);
+    return aggregatingCallback.getResult();
   }
 
   protected abstract Map<String, Set<Target>> preloadOrThrow(