Enable multiple `eval_dataset` in `Trainer` API
# 🚀 Feature request

Allow for two or more (equally long) validation sets to be passed to the `Trainer` API which are evaluated sequentially each `eval_steps`.

## Motivation

You can find my motivation in this [thread](https://discuss.huggingface.co/t/use-trainer-api-with-two-valiation-sets/5212) and the referenced paper. My idea would be to evaluate language model pre-training on an overlapping validation set (coming from the same data distribution as the training set) and a non-overlapping validation set (sampled from future periods or another domain). Ideally, I would like to track and log the validation loss during pre-training for both validation sets.
cc @sgugger <|||||>This would require quite a lot of changes in the main Trainer for a use case that is a bit unique. You should subclass the `Trainer` for this problem and just add a second `evaluate` in the training loop for your second dataset.<|||||>@sgugger thanks for the reply! Any chance you could provide a little guidance of how this would look like? Looking at the source code of `Trainer` I admit I feel a little bit lost...