Generate: Relaxed `max_length` and `max_new_tokens` coexistence
# What does this PR do?

TL;DR: stops raising an exception in `.generate()` when `max_length` and `max_new_tokens` are both set -- `max_new_tokens` will take precedence.

Context: Some downstream uses of `.generate()`, for legacy reasons, set `max_length` (e.g. pipelines, API). If a user tries manually setting `max_new_tokens`, as suggested in the documentation, an exception is thrown (even if `max_length` is manually set to `None`). 

Because `max_length` can be set outside the `GenerationConfig` and `.generate()`, it's hard to detect whether the `max_length` is intentionally set (and thus shouldn't be allowed together with `max_new_tokens`) or simply a helpful default. Raising an exception can thus block a correct usage of `max_new_tokens`. This PR relaxes this requirement, making `max_new_tokens` take precedence and raising an informative warning instead.

Fixes #21369 

___________________________________________________________________
Example of failing code before this PR:
```py

import requests

API_URL = "https://api-inference.huggingface.co/models/google/flan-t5-xl"
headers = {"Authorization": "Bearer hf_xxx"}


def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()


output = query(
    {"inputs": "The answer to the universe is", "parameters": {"max_new_tokens": 100}}
)
output
```
cc @lewtun -- thank you for raising the issue 🙏 <|||||>_The documentation is not available anymore as the PR was closed or merged._