Add beam search to generation tf 2 0
Add beam search to the TF generate function as it is done for torch at the moment. Use same TF syntax that was used in PR #3063 

EDIT: Also included a quick fix that `TF GPT2 past.shape == PT GPT2 past.shape`
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/3118?src=pr&el=h1) Report
> Merging [#3118](https://codecov.io/gh/huggingface/transformers/pull/3118?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/34de670dbe70a9ead31d0692ad9dc726d3ea4edb?src=pr&el=desc) will **increase** coverage by `0.1%`.
> The diff coverage is `84.51%`.

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

```diff
@@            Coverage Diff            @@
##           master    #3118     +/-   ##
=========================================
+ Coverage   77.84%   77.95%   +0.1%     
=========================================
  Files          98       98             
  Lines       16422    16561    +139     
=========================================
+ Hits        12784    12910    +126     
- Misses       3638     3651     +13
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/3118?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/modeling\_tf\_gpt2.py](https://codecov.io/gh/huggingface/transformers/pull/3118/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9ncHQyLnB5) | `96.14% <100%> (ø)` | :arrow_up: |
| [src/transformers/modeling\_tf\_ctrl.py](https://codecov.io/gh/huggingface/transformers/pull/3118/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl9jdHJsLnB5) | `99.57% <100%> (ø)` | :arrow_up: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3118/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `91.29% <84.1%> (-0.28%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/3118?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/3118?src=pr&el=footer). Last update [34de670...7a89a3e](https://codecov.io/gh/huggingface/transformers/pull/3118?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
<|||||>Good to merge for me! @LysandreJik @thomwolf <|||||>This is really cool, thanks a lot @patrickvonplaten 

Cc @minimaxir