remove adjust_logits_during_generation method
# What does this PR do?

This PR is the first split of #9811.

This PR
1.  introduces two new `generate`  and `config` arguments  and `LogitsProcessor`
    - `forced_bos_token_id` and `forced_eos_token_id`,  to force a specific start and end token. This is particularly useful for many to many and one to many translation models, so we can pass different language tokens as `forced_bos_token_id` to `generate`, 
    - `ForcedBOSTokenLogitsProcessor` and `ForcedEOSTokenLogitsProcessor`
2. Remove `adjust_logits_during_generation` method from all models (except `Marian`) and handle that use case using the newly introduced logits processors.
4. remove the `force_bos_token_to_be_generated` argument from `BartConfig`

For `Marian` we still need to keep the `adjust_logits_during_generation` method to force the model to not generate pad token. Adding the pad token to `bad_words_ids` does not resolve this issue, the score of `pad_token_id` needs to be set to `-inf` before calling `log_softmax`
All slow tests passing in PT!<|||||>@patrickvonplaten  (Bart, MBart, Pegasus, Marian, Blenderbot, BlenderbotSmall) slow tests are passing in TF as well.<|||||>Applied Sylvain's suggestions. Merging!