Updates `clu.metrics.CollectingMetric` to always use `np.array()`.
Since these metrics will be used on the host, it makes no sense to concatenate the arrays on devices. In the updated implementation, the arrays are transferred to host memory when `CollectingMetric.merge()` is called. Furthermore, the metric keeps tuples that contain references to the arrays (instead of consecutively concatenating the array, as was the case before).
Note that this implementation will still cause a sync barrier when `CollectingMetric.merge()` is called. For an efficient work-around see the class pydoc.
PiperOrigin-RevId: 441398453