Tpu trainer
This PR aims to bring TPU support to the trainer. It runs on GLUE/MRPC but is yet untested on others.

Left to do:

- [ ] Saving and reloading mid-training
- [ ] Check it runs on a few examples (Language modeling, NER, other GLUE tasks)
- [ ] Write down training speed-ups
- [ ] Write down evaluation speed-ups

The API is not final.
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=h1) Report
> Merging [#4146](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/d713cfc5ebfb1ed83de1fce55dd7279f9db30672&el=desc) will **decrease** coverage by `0.08%`.
> The diff coverage is `33.33%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/4146/graphs/tree.svg?width=650&height=150&src=pr&token=9qOlN6Hb1c)](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #4146      +/-   ##
==========================================
- Coverage   78.84%   78.76%   -0.09%     
==========================================
  Files         114      114              
  Lines       18688    18729      +41     
==========================================
+ Hits        14735    14751      +16     
- Misses       3953     3978      +25     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/trainer.py](https://codecov.io/gh/huggingface/transformers/pull/4146/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90cmFpbmVyLnB5) | `42.27% <25.58%> (-1.64%)` | :arrow_down: |
| [src/transformers/training\_args.py](https://codecov.io/gh/huggingface/transformers/pull/4146/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90cmFpbmluZ19hcmdzLnB5) | `84.21% <63.63%> (-3.49%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4146/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `92.77% <0.00%> (+0.16%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=footer). Last update [d713cfc...e882471](https://codecov.io/gh/huggingface/transformers/pull/4146?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>Awesome!