Fix beam search when sampling in language generation
I think there is a problem with beam search when setting `do_sample=True` 
As it was implemented before, the variable `next_words` in previous line 829 would always contains 
word ids < `vocab_size` which forces all `beam_idx` to always be == 0.
This way all words would actually always be appended to the `input_ids` of the first beam. 

In the proposed PR, the words are sampled over the scores of size `(batch_size, num_beams * vocab_size)`, which is similar to what is done in greedy decoding. 

I tried generating a couple of sequences with the proposed change and it seems to be important that the temperature is set relatively high (~1.5) to avoid repeating words. 

Not 100% whether the proposed PR is the best fix. In general, beam search seems to work better when doing greedy decoding.
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/2317?src=pr&el=h1) Report
> Merging [#2317](https://codecov.io/gh/huggingface/transformers/pull/2317?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/aeef4823ab6099249679756182700e6800024c36?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `0%`.

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

```diff
@@           Coverage Diff           @@
##           master    #2317   +/-   ##
=======================================
  Coverage   73.49%   73.49%           
=======================================
  Files          87       87           
  Lines       14793    14793           
=======================================
  Hits        10872    10872           
  Misses       3921     3921
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/2317?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/2317/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `63.45% <0%> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/2317?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/2317?src=pr&el=footer). Last update [aeef482...af1ca72](https://codecov.io/gh/huggingface/transformers/pull/2317?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>Good point but we shouldn't be sampling like that indeed, we should be sampling independently for each beam.