Given an array of test execution times, write an algorithm to identify and group anomalous runs.
Use Tukey's IQR rule: sort the times, include the median in both halves when the length is odd, and mark values below Q1 - 1.5 * IQR or above Q3 + 1.5 * IQR as anomalous. Return groups of consecutive anomalous indices from the original array.
Function: def group_anomalous_runs(times):. The input is a non-empty list of numbers, and the output is a list of lists of zero-based indices.
def group_anomalous_runs(times):