Add support for pretraining recurring span selection to Splinter
This pull request aims to add support for recurring span selection pretraining as proposed by the authors of [Splinter](https://arxiv.org/abs/2101.00438). The pretraining objective differs from the question answering task in a couple of ways:

- There is not a question, but a number of question tokens replacing recurring spans.
- The shape of `start_positions` and `end_positions` is `(batch_size, num_questions)` instead of `(batch_size, )`.
- The shape of `start_logits` and `end_logits` is `(batch_size, num_questions, sequence_length)` instead of `(batch_size, sequence_length)`.
- The loss should ignore zero positions, i.e. `ignore_index=0`. Zeros are used in the original code to denote padded question tokens and their start and end positions.

To this end, we added `SplinterForPreTraining`.

Minimal training example:

```python
import torch
from torch.utils.data import IterableDataset
from transformers import SplinterConfig
from transformers import SplinterForPreTraining
from transformers import Trainer
from transformers import TrainingArguments


class QuestionAnsweringDataset(IterableDataset):
    def __iter__(self):
        yield {
            "input_ids": torch.tensor([101, 104, 123, 456, 104, 234, 567, 102]),
            "attention_mask": torch.tensor([1, 1, 1, 1, 1, 1, 1, 1]),
            "token_type_ids": torch.tensor([0, 0, 0, 0, 0, 0, 0, 0]),
            "question_positions": torch.tensor([1, 4]),
            "start_positions": torch.tensor([2, 5]),
            "end_positions": torch.tensor([3, 6]),
        }


config = SplinterConfig()
model = SplinterForPreTraining(config)
dataset = QuestionAnsweringDataset()

trainer = Trainer(
    model=model,
    args=TrainingArguments(max_steps=3, output_dir="/tmp"),
    train_dataset=dataset,
)
trainer.train()
```

CC @tobigue

@patil-suraj @LysandreJik @patrickvonplaten @oriram 

_The documentation is not available anymore as the PR was closed or merged._<|||||>Thanks for reviewing the PR! :) I added the suggested changes.

@jvcop will add an answer to this https://github.com/huggingface/transformers/pull/17247#discussion_r873691809<|||||>As far as I can see all comments have been addressed - merging! Thanks a lot for your work here @jvcop !<|||||>Thanks a lot for the fast review! And to @tobigue who was an integral part of this :tada: 