Generate: text generation pipeline no longer emits `max_length` warning when it is not set
# What does this PR do?

Fixes #22636 

In the `text-generation` pipeline, `max_length` is updated to take into account the prefix (which defaults to the BOS token). When `max_new_tokens` was set, it meant that `.generate` received both parameters, triggering the warning.

This PR defers the `max_length` update to right before generation, in case `max_new_tokens` is set at call time, and only updates it if `max_new_tokens` is not set -- avoiding triggering the warning if the user has not set `max_length` while keeping the same behavior.

____________________________________
Test script, which was triggering the warning before this change:
```py
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline, GenerationConfig

device = "cuda:0"
model_name = "facebook/opt-1.3b"

# tokenizer, model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    low_cpu_mem_usage=True,
    pad_token_id=tokenizer.eos_token_id
).to(device)

# pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, device=device)

# generate text
text = "Hello "
result = pipe(
    text,
    generation_config=GenerationConfig(
        max_new_tokens=70,
        num_beams=1,
        do_sample=False
    )
)

# print result
print(result)
```
_The documentation is not available anymore as the PR was closed or merged._<|||||>@Narsil added test 👍 (precisely as suggested, using a small model checks that the warning is raised only when it should)