Introduce the 'siblings' query function.

RELNOTES[NEW]: There is now a 'siblings' query function. See the query documentation for more details.

PiperOrigin-RevId: 165010653
diff --git a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
index 2781b0f..fe267b9 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
@@ -127,6 +127,14 @@
   }
 
   @Override
+  public Collection<Target> getSiblingTargetsInPackage(Target target) {
+    Collection<Target> siblings = target.getPackage().getTargets().values();
+    // Ensure that the sibling targets are in the graph being built-up.
+    siblings.forEach(this::getNode);
+    return siblings;
+  }
+
+  @Override
   public QueryTaskFuture<Void> getTargetsMatchingPattern(
       QueryExpression owner, String pattern, Callback<Target> callback) {
     try {