Add TFVisionEncoderDecoderModel
# What does this PR do?

To make Vision-Encoder-Text-Decoder family complete by adding `TFVisionEncoderDecoderModel`.

To complete this PR, it requires to wait #13778 being merged to master (then rebase)
(And if we want to include a real integration test using the recent image-captioning ViT + GPT2 model, need to wait #14038 too)

@sgugger, thank you for your review, I have addressed them.

I am impressed by your ability to spot the `fits in one line` places.

I feel that sometimes `make style` can reformat in this case, but doesn't work well in a few places, as happened in this PR.

I dive a bit deeper, and found:

this one won't be reformatted by `make style`
```
    def prepare_inputs_for_generation(
        self,
        decoder_input_ids,
        past,
        use_cache=None,
        **kwargs,
    ):
```

but the following one will work well.

```
    def prepare_inputs_for_generation(
        self,
        decoder_input_ids,
        past,
        use_cache=None,
        **kwargs
    ):
```

The difference is the ending comma after the last argument. Is this a bug? I can open an issue if so.
Maybe I should just remove all the commas after the last arguments in my PR.<|||||>> This is a great addition @ydshieh! Thanks a lot for the contribution.
> 
> From my side it would be great if we could:
> 
>     * remove all pytorch specific changes that are not needed to get the TF version working (I'll tackle this in a future PR :-) )
> 
>     * add one slow test that ensures that the model works correctly
> 
> 
> Thanks a bunch!

Hi @patrickvonplaten 

- OK for removing the changes on PT code.
- For the test, I think I forgot to do the same as I have done for PT/Flax

    https://github.com/huggingface/transformers/blob/8395f14de6068012787d83989c3627c3df6a252b/tests/test_modeling_vision_encoder_decoder.py#L666

    https://github.com/huggingface/transformers/blob/8395f14de6068012787d83989c3627c3df6a252b/tests/test_modeling_flax_vision_encoder_decoder.py#L467

    I will add it to TF test :)<|||||>I removed the changes on PT code. I added 

```
class TFViT2GPT2ModelIntegrationTest(unittest.TestCase):
    @slow
    def test_inference_coco_en(self):
```
here
https://github.com/huggingface/transformers/blob/a179c4a5087e48127914e26e9895a455b42bac0d/tests/test_modeling_tf_vision_encoder_decoder.py#L775<|||||>Hi, @patrickvonplaten @Rocketknight1 @NielsRogge 

I removed the changes on PT code. I also added 

```
class TFViT2GPT2ModelIntegrationTest(unittest.TestCase):
    @slow
    def test_inference_coco_en(self):
```
here
https://github.com/huggingface/transformers/blob/b3255863540fac38d49e5067c14fef7ae66dc31f/tests/test_modeling_tf_vision_encoder_decoder.py#L769

This PR is ready for review when you have the time :-)<|||||>> * auto.rst no?

Yes. I added the (empty) file to commit by mistake during git rebase/merge.<|||||>@NielsRogge @Rocketknight1 - could you guys take a look here as well?<|||||>Applied @sgugger  review suggestions. Failed tests are unrelated.<|||||>Thanks again for all your work on this!