add BartConfig.force_bos_token_to_be_generated
Author: sshleifer
Pull request: yes

This PR adds a config flag that makes a generation hack from bart's `adjust_logits_during_generation`, optional. This change (setting the flag to False) improves metrics for bart-large-xsum and mbart-large-en-ro, but not bart-large-cnn (hence the need for the flag).

I remember @patrickvonplaten asked me about this in February, and I ran on CNN and then decided the hack needed to stay, could have been more careful. 
cc @patil-suraj 

### Todo
[x] test xsum
[x] test cnn
[x] test en-ro
[x] update cnn config
[x] test pegasus
[x] update distilbart configs
[] should max_length be changed in xsum config?


### TODO:
- check pegasus
- should max_length be 1 lower for configs where hack is removed? Yes.

### Metrics
(all on val.source vs. val.target) the first number is runtime over the whole val set. "noforce" means this PR without any config change. (so BOS token is not forced to be generated.)


**bart-large-cnn**
**master: 86:23 {"rouge1": 44.79, "rouge2": 21.64, "rougeL": 31.18}**
noforce: 87:40 {'rouge1': 44.26, 'rouge2': 21.22, 'rougeL': 30.72}

**bart-large-xsum**
master: 41:59, {'rouge1': 45.16, 'rouge2': 21.77, 'rougeL': 36.35}
**noforce: 34:12, {'rouge1': 45.45, 'rouge2': 22.38, 'rougeL': 37.25}**

**mbart-large-en-ro**
master: 04:58  BLEU=27.83
**noforce:  04:42, BLEU=28.15**

**pegasus-xsum**
master: 56:12 {'rouge1': 46.69, 'rouge2': 24.13, 'rougeL': 38.79}
**noforce: 54:15 {'rouge1': 46.98, 'rouge2': 24.43, 'rougeL': 39.11}**

#### Commands

```bash
export DATA_DIR=wmt_en_ro
python run_eval.py facebook/mbart-large-en-ro \
    $DATA_DIR/val.source gens/mbart-enro-branch-gens.txt \
    --reference_path $DATA_DIR/val.target \
    --score_path gens/mbart-enro-master-bleu.json \
    --task translation_en_to_ro \
    --device cuda \
    --fp16 \
    --bs 32

export DATA_DIR=$CNN_DIR
python run_eval.py facebook/bart-large-cnn \
    $DATA_DIR/val.source gens/cnn_val_generations_no_force.txt \
    --reference_path $DATA_DIR/val.target \
    --score_path gens/cnn_gen_no_force_rouge.txt \
    --device cuda \
    --fp16 \
    --bs 32


export DATA_DIR=$CNN_DIR
python run_eval.py facebook/bart-large-cnn \
    $DATA_DIR/val.source gens/cnn_val_generations_master.txt \
    --reference_path $DATA_DIR/val.target \
    --score_path gens/cnn_gen_master_rouge.txt \
    --device cuda \
    --fp16 \
    --bs 32
```

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

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

```diff
@@            Coverage Diff             @@
##           master    #6526      +/-   ##
==========================================
- Coverage   80.59%   78.19%   -2.40%     
==========================================
  Files         156      156              
  Lines       28058    28055       -3     
==========================================
- Hits        22612    21939     -673     
- Misses       5446     6116     +670     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/6526?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/configuration\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2JhcnQucHk=) | `94.00% <100.00%> (+0.12%)` | :arrow_up: |
| [src/transformers/modeling\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19iYXJ0LnB5) | `95.56% <100.00%> (-0.20%)` | :arrow_down: |
| [src/transformers/modeling\_marian.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19tYXJpYW4ucHk=) | `90.00% <100.00%> (ø)` | |
| [src/transformers/optimization.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9vcHRpbWl6YXRpb24ucHk=) | `25.55% <0.00%> (-70.00%)` | :arrow_down: |
| [src/transformers/pipelines.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9waXBlbGluZXMucHk=) | `26.26% <0.00%> (-53.43%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_bert.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9iZXJ0LnB5) | `66.00% <0.00%> (-32.38%)` | :arrow_down: |
| [src/transformers/optimization\_tf.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9vcHRpbWl6YXRpb25fdGYucHk=) | `33.33% <0.00%> (-24.33%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9hdXRvLnB5) | `48.79% <0.00%> (-18.08%)` | :arrow_down: |
| [src/transformers/data/processors/squad.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9kYXRhL3Byb2Nlc3NvcnMvc3F1YWQucHk=) | `13.76% <0.00%> (-14.38%)` | :arrow_down: |
| [src/transformers/modeling\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19hdXRvLnB5) | `64.36% <0.00%> (-14.37%)` | :arrow_down: |
| ... and [12 more](https://codecov.io/gh/huggingface/transformers/pull/6526/diff?src=pr&el=tree-more) | |

------

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