Specify metric aggregation strategy when evaluating on multiple validation datasets using `Trainer` class
### Feature request

Specify metric aggregation strategy when evaluating on multiple validation datasets using `Trainer` class. This metric aggregation strategy will output a `metric: Dict[str, float]` by aggregating the metrics computed from the multiple validation sets.



### Motivation

When evaluating on multiple validation datasets using `Trainer`, the metrics used to compute the best checkpoint is the last metric.  However, the user will likely want an aggregation of metrics from the multiple validation datasets. 

https://github.com/huggingface/transformers/blob/ff8870350151091d3d8b2af4c1c0fa3ebcc1052a/src/transformers/trainer.py#L2224-L2235



### Your contribution

I would be happy to make a PR. My idea is as follows:
1. Collate all metrics from evaluation dataset
2. Aggregate the metrics based on a user-specified strategy (e.g. average a user-specified common metric between all evaluation dataset; here, I can leverage the TrainingArgument `metric_for_best_model `). This step should return a `Dict[str, float]` so as to be compatible with the `metric` type. 
This is a bit too niche to be added in the Trainer, it might be best to write your own subclass for this.