Add TFSpeech2Text
# What does this PR do?

This PR adds a TF port of Speech2Text. A summary of the changes:
- This model borrows a lot of code from TFBart, just like Speech2Text borrowed from Bart;
- Tried to follow the changes in other PRs to enable smooth interoperation with other parts of transformers (e.g. auto classes), might be missing a few things 👼 ;
- This seems to be the first TF model with speech as input, so I had to touch common TF code to enable correct data piping and misc operations (e.g. enable loading Conv1D PT weights into TF);
- Likewise, there were a few tests in `test_modelling_tf_common.py` that didn't quite fit this new kind of model.

TODO: 
- [x] create TF version of the weights, so we can load a model without `from_pt=True`
Tagging @sgugger as a core dev, @patil-suraj as a core dev + original creator of our `Speech2Text`, and @Rocketknight1 as the TensorFlow boy. Feel free to redirect the reviews if you know of better people to review.

Some pipeline tests are failing almost surely due to the changes in `generation_tf_utils.py`, as some models expect `(encoder_outputs, past)` in the `past` variable and others don't -- having a look, but open to suggestions.<|||||>Cloned your branch and did some experimentation and LGTM! I noticed one issue - `model.save()` seems to encounter problems, but I'm not totally sure of why, or whether it's limited to this model or not. `save_pretrained` and `save_weights` worked correctly, and saving in `SavedModel` format has always been a bit shaky for us, so this isn't critical.<|||||>Pending the results of automated tests, this should be the last planned commit. We already have `facebook/s2t-small-librispeech-asr` as a TF model, and I will upload the TF version of the others today. 

@patrickvonplaten -- One important final change that I'd like to ask for a double-check is the removal of the positional embeddings weights from the `nn.Parameter()` wrapper, in the PT model. It is a constant that was not being saved nor loaded, and was causing issues in the `pt_tf` tests (the TF model had no such variable, and technically it is not a parameter). 

To check the changes, I've run:
```
RUN_SLOW=1 pytest tests/test_modeling_tf_vision_encoder_decoder.py
RUN_SLOW=1 pytest tests/test_modeling_tf_bart.py
RUN_SLOW=1 pytest tests/test_modeling_tf_t5.py
RUN_SLOW=1 pytest tests/test_modeling_tf_rag.py
RUN_SLOW=1 pytest tests/test_modeling_speech_to_text_2.py
RUN_PT_TF_CROSS_TESTS=1 RUN_SLOW=1 pytest tests/test_modeling_speech_to_text.py
RUN_PT_TF_CROSS_TESTS=1 RUN_SLOW=1 pytest tests/test_modeling_tf_speech_to_text.py
```

EDIT: TF models uploaded.<|||||>@patrickvonplaten reverted the previous change and added the embedding weights as named variables in TF