[`pipeline`] revisit device check for pipeline
# What does this PR do?

Fixes https://github.com/huggingface/transformers/issues/23336#issuecomment-1657792271 

Currently `.to` is called to the model in pipeline even if the model is loaded with accelerate - which is a bad practice and can lead to unexpected behaviour if the model is loaded across multiple GPUs or offloaded to CPU/disk. 

This PR simply revisits the check for device assignment

Simple snippet to reproduce the issue:

```python 
from transformers import AutoModelForCausalLM, AutoConfig, AutoTokenizer, pipeline
import torch

model_path="facebook/opt-350m"

config = AutoConfig.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, load_in_8bit=True, device_map="auto")

tokenizer = AutoTokenizer.from_pretrained(model_path)
params = {
        "max_length":1024,
        "pad_token_id": 0, 
        "device_map":"auto", 
        "load_in_8bit": True,
        # "torch_dtype":"auto"
        }
pipe = pipeline(
    task="text-generation",
    model=model,
    tokenizer=tokenizer,
    device=0,
    model_kwargs=params,
)
```

cc @sgugger @Narsil 
After thinking about it, maybe this shouldn't be the right fix, it is a bad intent from users to add a `device_map` + `device` argument.
Let me know what do you think<|||||>_The documentation is not available anymore as the PR was closed or merged._<|||||>Yeah let's raise an error!