[cleanup] Hoist ModelTester objects to top level
Fixes #4902 
@sshleifer 
All tests seem to pass. Please review!

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

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

```diff
@@           Coverage Diff           @@
##           master    #4939   +/-   ##
=======================================
  Coverage   77.39%   77.40%           
=======================================
  Files         130      130           
  Lines       22018    22018           
=======================================
+ Hits        17041    17042    +1     
+ Misses       4977     4976    -1     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4939?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4939/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `87.26% <0.00%> (-0.16%)` | :arrow_down: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4939/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `90.73% <0.00%> (+0.11%)` | :arrow_up: |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4939/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `75.40% <0.00%> (+0.40%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4939?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/4939?src=pr&el=footer). Last update [f9f8a53...16a4a1e](https://codecov.io/gh/huggingface/transformers/pull/4939?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>I think we can investigate code reuse between `ModelTester`s in a separate PR, given the enormity of this one :)<|||||>I like the changes! I only checked the files superficially. I trust @aretius and @sshleifer that no tests functionality was changed of got lost :-)<|||||>Thanks, @sshleifer :)
Would be glad to pick up code reuse in a separate PR 
Yes @patrickvonplaten no test functionality was lost!<|||||>Merge conflict resolved @LysandreJik 