Skip device placement for past key values in decoder models
# What does this PR do?

This PR skips the device placement for the `past_key_values` in big models, which is responsible for a lot of time lost according to the analysis in [this issue](https://github.com/huggingface/accelerate/issues/1394). The idea is that the past key values (one per layer) are all generated on the device of the layer they correspond to and never need to be moved.

Needs to be tested with Accelerate at https://github.com/huggingface/accelerate/pull/1491 (until this PR is merged).
_The documentation is not available anymore as the PR was closed or merged._<|||||>Accelerate handles both strings and arrays :-) <|||||>thanks boss!