[Bart] Replace config.output_past with use_cache kwarg
Author: sshleifer
Pull request: yes

- Rename generation_mode -> `use_cache`

### Benefits
- Avoid confusion (see linked issues)
- allow unit tests to instantiate once, then test `forward` and `generate`. Avoiding extra 10 second init cost.
- Never accidentally have slow generation

### Costs
- If a developer is changing something and wants to turn caching off, they must edit `prepare_inputs_for_generation` and pass use_cache=False. This is documented. They are a developer by construction so this cost is low.
- inconsistency with other cachers like `CTRLModel`


Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/3632?src=pr&el=h1) Report
> Merging [#3632](https://codecov.io/gh/huggingface/transformers/pull/3632?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/4ab8ab4f50baf391612cbc78cfa3f09b7ad0c3ac&el=desc) will **increase** coverage by `0.94%`.
> The diff coverage is `100.00%`.

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

```diff
@@            Coverage Diff             @@
##           master    #3632      +/-   ##
==========================================
+ Coverage   77.34%   78.29%   +0.94%     
==========================================
  Files         104      104              
  Lines       17628    17629       +1     
==========================================
+ Hits        13634    13802     +168     
+ Misses       3994     3827     -167     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/3632?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/configuration\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2JhcnQucHk=) | `100.00% <ø> (ø)` | |
| [src/transformers/modeling\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19iYXJ0LnB5) | `97.61% <100.00%> (+<0.01%)` | :arrow_up: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `93.45% <0.00%> (+0.16%)` | :arrow_up: |
| [src/transformers/modeling\_openai.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19vcGVuYWkucHk=) | `81.54% <0.00%> (+1.34%)` | :arrow_up: |
| [src/transformers/modeling\_xlnet.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ194bG5ldC5weQ==) | `75.77% <0.00%> (+2.29%)` | :arrow_up: |
| [src/transformers/modeling\_ctrl.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19jdHJsLnB5) | `98.24% <0.00%> (+2.63%)` | :arrow_up: |
| [src/transformers/modeling\_roberta.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19yb2JlcnRhLnB5) | `95.71% <0.00%> (+10.00%)` | :arrow_up: |
| [src/transformers/modeling\_tf\_pytorch\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3632/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9weXRvcmNoX3V0aWxzLnB5) | `89.93% <0.00%> (+81.20%)` | :arrow_up: |

------

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


I think these if statements in tests are not needed anymore now and can be removed:
https://github.com/huggingface/transformers/blob/4ab8ab4f50baf391612cbc78cfa3f09b7ad0c3ac/tests/test_modeling_common.py#L632
and 
https://github.com/huggingface/transformers/blob/4ab8ab4f50baf391612cbc78cfa3f09b7ad0c3ac/tests/test_modeling_tf_common.py#L428

Looks good to me otherwise