Trainer with Iterable Dataset
# What does this PR do?

Fixes #5990 
Follows #5995 (closed because stale).
Merges all commits from master.

* accomodate iterable dataset without predefined length
* set it as 1 use case: provide max_steps, and NO num_epochs
* Is a merge of master and PR 5995

- [ ] This PR fixes a typo or improves the docs (you can dimiss the other checks if that's the case).
- [X] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md#start-contributing-pull-requests), 
      Pull Request section?
- [X] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to the it if that's the case.
- [X] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/master/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/master/docs#writing-source-documentation).
- [X] Did you write any new necessary tests? 


## Who can review?
@sgugger 

Now investigating this FAILED test.
So far, it is PASSED on 3 different environments I have tried.
`FAILED tests/test_tokenization_fast.py::SentencePieceFastTokenizerTest::test_add_special_tokens` from `run_tests_torch_and_tf`<|||||>@sgugger 

CircleCI `run_tests_torch_and_tf` is FAILED, because 
```
FAILED tests/test_tokenization_fast.py::SentencePieceFastTokenizerTest::test_add_special_tokens
==== 1 failed, 2964 passed, 493 skipped, 386 warnings in 925.76s (0:15:25) =====
```
On 2 different environments, I have a PASSED.
I reproduced the CI run step by step, and it is still PASSED:
```
conda create -n trans_test_tf_torch python=3.6 
conda activate trans_test_tf_torch
git clone git@github.com:huggingface/transformers.git
cd transformers
git fetch origin pull/7858/head:pull/7858
git pull origin pull/7858 
git checkout pull/7858
pip install --upgrade pip      
pip install git+https://github.com/huggingface/datasets 
pip install .[sklearn,tf-cpu,torch,testing]     
pip install codecov pytest-cov 
```

Result:
`python -m pytest -n auto --dist=loadfile -s -v tests/test_tokenization_fast.py --cov`
`91 passed, 11 warnings in 1851.05s (0:30:51)`

For all the tests:
`python -m pytest -n auto --dist=loadfile -s -v ./tests/ --cov `
`2965 passed, 493 skipped, 385 warnings in 3124.66s (0:52:04)`<|||||>Thanks for your contribution!