TF generate refactor - past without encoder outputs
# What does this PR do?

As discussed in the original TF generate refactor plan (https://github.com/huggingface/transformers/pull/15562), removes the `encoder_outputs` from `past`. In practice, these changes consist mostly in:
1. Delete the lines flagged by Patrick;
2. Adapt `prepare_inputs_for_generation` and `_reorder_cache` from PT to TF, for each class.

Three important notes:
1. Beam search was still in the old format, and a few changes there were needed to enable the changes above. They were mostly about how `past` or `encoder_outputs` were handled;
2. Some models have `cross_attn_head_mask` in `prepare_inputs_for_generation`, in their PT implementation, but raised errors in TF -> I've deleted it from the function output;
3. I've run `RUN_SLOW=1 pytest -vv tests/model_name/test_modeling_tf_model_name.py` for all affected models.
Let's merge this? cc @Rocketknight1 ?