Seq2SeqDataset experiment: try to use arrow datasets
### High Level Goal
See if [`datasets/arrow_dataset.py`](https://github.com/huggingface/datasets/blob/master/src/datasets/arrow_dataset.py#L172) can improve `example/seq2seq/utils.py`'s [`Seq2SeqDataset`](https://github.com/huggingface/transformers/blob/master/examples/seq2seq/utils.py#L165)

This is more experimental/proof of concept.

### Spec
+ Generate a PR that adds `Seq2SeqArrowDataset` with a similar signature to `Seq2SeqDataset` but uses the arrow dataset as a backend.
+ This means that wherever `linecache` is used, arrow should be used.
+ You can flex the API as much as you'd like, but if you don't call `prepare_seq2seq_batch` you will have to implement lots of collate fns. (If you go this route, you can just implement 1)
+ Feel free to reduce the scope to either translation or summarization.

PR description should answer the following question:

- Can we generate similar batches with an ArrowDataset?
- Is the dataset faster?
- Does it consume as little RAM?
- Does it simplify the code?

Let me know if this is impossible or unclear!

@sshleifer  could please assign me to this issue, would love to take a stab at this alongside `Seq2SeqTrainer` or once it's merged. ;)<|||||>This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
