Add custom `stopping_criteria` and  `logits_processor` to `generate`
# What does this PR do?

This PR are continues the work and discussions from #12219 with a fresh start.

It integrates the custom `stopping_criteria` and `logits_processor` with the following logic: 
- the default `stopping_criteria`/`logits_processor` are created from the arguments and model's config 
- if additional, custom `stopping_criteria` and `logits_processor` are passed to `generate`, they are compared with the default list
   - if there is an overlap between the two lists (e.g. a `MaxLengthCriteria` in both lists) an error is thrown
   - if there is no overlap the two lists are merged 

Fixes #12118
@Narsil thanks for your feedback and catching that copy-paste error! I added something to the docstring and fixed the error.

@patrickvonplaten any comments?

