Hans data
This is the first step toward solving #4742: to be able to use the Trainer API, we first need to remove the TensorDataset and have datasets with dict items. This PR addresses that and updates the training and evaluation script accordingly.

It takes the multiple choice as a reference implementation, using the same file structure (hence the removal of "hans_processor.py") and implements in "utils_hans.py":
- a `HansDataset` and a `TFHansDataset` that implement the logic of the old method `load_and_cache_examples`
- a `HansProcessor` (copied from before)
- a `hans_convert_examples_to_features` with the same logic as before but using the tokenizer method for padding instead of re-implementing it.

Side question: it doesn't look like the `TFMultipleChoiceDataset` I use as a reference for this implementation uses caching, maybe it should be added in the future?
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4854?src=pr&el=h1) Report
> Merging [#4854](https://codecov.io/gh/huggingface/transformers/pull/4854?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/ca5e1cdf8e314288bd0242a531815a6c75d8178e&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

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

```diff
@@           Coverage Diff           @@
##           master    #4854   +/-   ##
=======================================
  Coverage   77.26%   77.26%           
=======================================
  Files         128      128           
  Lines       21851    21851           
=======================================
  Hits        16884    16884           
  Misses       4967     4967           
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4854?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4854/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `73.38% <0.00%> (-0.41%)` | :arrow_down: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4854/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `90.61% <0.00%> (+0.11%)` | :arrow_up: |

------

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