TF generate refactor - Sample
Author: gante
Pull request: yes

# What does this PR do?

This PR is step 3 of the `generate()` refactor plan (see https://github.com/huggingface/transformers/pull/15562) -- it refactors the sample case.

A few notes:
- `_generate_no_beam_search()` was no longer reachable, so it was removed;
- I've tested the changes against the example in `_generate()` and all looks well. There are also a bunch of related tests that are passing after the changes (e.g. pipeline tests). However, the output is non-deterministic. Is there any way I can do stricter testing?
- While inspecting other `generate` files, I came across a few incorrect type hints and corrected them. LMK if you want me to move it to a different PR;

Comments:
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_15793). All of your documentation changes will be reflected on that endpoint.

Looks good to me & thanks for cleaning up the type-hints, but we need tests here. Both for the `TFLogitsWarpers` and we should add at least one aggressive GPT2-sample and T5-sample slow test - similar to what was added here: https://github.com/huggingface/transformers/pull/15562/files#r814868995 . Such a test should include **all** logits processors and logits warpers and be a batched test and be added before doing the change so that we can be sure we didn't break anything (there are lots of subtleties for generate).

@gante it would be great if you could do the following: 

- On current master add an aggressive test for `do_sample=True` with https://www.tensorflow.org/api_docs/python/tf/random/set_seed and a lot or all the possible logits warpers and processors and set the expected output to what the model gives you - it should be sensible.
- Then, copy-paste the test into this PR and verify that it passes.

We need to be sure everything works as expected here :-)

@patrickvonplaten absolutely agreed, running != being correct. I will add those in a separate PR and rebase this one as soon as the new stricter tests get merged. Hopefully, no changes will be needed here 🤞 

@patrickvonplaten @Rocketknight1 rebased with the recently merged TF sample generate integration tests (which are passing), with TF logit wrapper tests added on top. We should be ready to merge, but I'd like to get your eyes for explicit approval :)

@gante Before merging could you run a final test that all of the following tests pass in TF:

```
RUN_SLOW=1 pytest -sv \
tests/test_modeling_tf_bart.py \
tests/test_modeling_tf_t5.py \
tests/test_modeling_tf_gpt2.py \
tests/test_modeling_tf_vision_encoder_decoder.py \
tests/test_modeling_tf_encoder_decoder.py \
tests/test_modeling_tf_speech_to_text.py
```

> @gante Before merging could you run a final test that all of the following tests pass in TF:
> 
> ```
> RUN_SLOW=1 pytest -sv \
> tests/test_modeling_tf_bart.py \
> tests/test_modeling_tf_t5.py \
> tests/test_modeling_tf_gpt2.py \
> tests/test_modeling_tf_vision_encoder_decoder.py \
> tests/test_modeling_tf_encoder_decoder.py \
> tests/test_modeling_tf_speech_to_text.py
> ```

Running the tests -- will merge if all pass.

Tests passing after this commit -- merging as soon as CI gets to green