Add option to `cached_path` to automatically extract archives
Author: thomwolf
Pull request: yes

Slight modification to `cached_path` so that zip and tar archives can be automatically extracted.
- archives are extracted in the same directory than the (possibly downloaded) archive in a created extraction directory named from the archive.
- automatic extraction is activated by setting `extract_compressed_file=True` when calling `cached_file`.
- the extraction directory is re-used t avoid extracting the archive again unless we set `force_extract=True`, in which case the cached extraction directory is removed and the archive is extracted again.

Currently not added to the `from_pretrained` methods. Probably better to have the user control this explicitly at this level (by first extracting the archive) => open to discussion though.

Also include a simple proposal to add TF/PT compatibility in hf_buckets (cc @julien-c)

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2765?src=pr&el=h1) Report
> Merging [#2765](https://codecov.io/gh/huggingface/transformers/pull/2765?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/2c12464a20160061a8b436b4939e8d5fa2437a15?src=pr&el=desc) will **decrease** coverage by `0.36%`.
> The diff coverage is `31.03%`.

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

```diff
@@            Coverage Diff             @@
##           master    #2765      +/-   ##
==========================================
- Coverage   75.09%   74.73%   -0.37%     
==========================================
  Files          93       93              
  Lines       15250    15273      +23     
==========================================
- Hits        11452    11414      -38     
- Misses       3798     3859      +61
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/2765?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `92.26% <100%> (-0.56%)` | :arrow_down: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `61.26% <100%> (-0.07%)` | :arrow_down: |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `67.74% <25.92%> (-5.36%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9hdXRvLnB5) | `52.94% <0%> (-21.57%)` | :arrow_down: |
| [src/transformers/pipelines.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9waXBlbGluZXMucHk=) | `68.62% <0%> (-3.32%)` | :arrow_down: |
| [src/transformers/tokenization\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/2765/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fdXRpbHMucHk=) | `84.87% <0%> (-0.82%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/2765?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/2765?src=pr&el=footer). Last update [2c12464...c6c5c3f](https://codecov.io/gh/huggingface/transformers/pull/2765?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).