Check link validity
Author: rlouf
Pull request: yes

We would like to make sure that every download link in the code base works. The best way to do this is to check automatically with the CI; this also prevents us from merging code with broken links.

This PR adds a small script that:

- Lists all source code files
- Extracts links with a regexp
- Performs HEAD requests to check the validity of each link
- Returns an error if at least one link is broken, along with the list of all broken links.

I also add a Circle CI workflow `repository-consistency` with a small machine that runs this script. It could be used to enforce things such as coding styles etc in the future.

For now the links are checked sequentially; if it turns out to take too long we can use `aiohttp` to run the queries concurrently.

_Edit:_ commits squashed

Comments:
It works so well the CI failed because of a broken link :)

Ok great!

Maybe in the future, we would like to ensure model files can also be loaded without problems but this will suffice for now (and be fast)!

merging (when I've converted and added the missing model)

Yes it would be great too! The only limit is the RAM available and the bandwidth on Circle CI's side. Assuming they're big enough we can download and load all files at the same time, it is easy to do. Maybe next time a related issue pops up?

# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2075?src=pr&el=h1) Report
> Merging [#2075](https://codecov.io/gh/huggingface/transformers/pull/2075?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/9c58b236ef5fbbe5d0cbde4932eb342a73eaa0dc?src=pr&el=desc) will **increase** coverage by `0.01%`.
> The diff coverage is `n/a`.

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

```diff
@@            Coverage Diff             @@
##           master    #2075      +/-   ##
==========================================
+ Coverage   80.35%   80.36%   +0.01%     
==========================================
  Files         114      114              
  Lines       17091    17091              
==========================================
+ Hits        13733    13736       +3     
+ Misses       3358     3355       -3
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/2075?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [transformers/tests/modeling\_common\_test.py](https://codecov.io/gh/huggingface/transformers/pull/2075/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rlc3RzL21vZGVsaW5nX2NvbW1vbl90ZXN0LnB5) | `74.53% <0%> (+0.55%)` | :arrow_up: |

------

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


Ok great, merging, thanks @rlouf