Fix Respect output device in the Pipeline base impl.
changes hardcoded `"cpu"` device in return in the forward method to `self.device`

# What does this PR do?
The base class in pipeline surprisingly returns a tensor on the right device, and this is then moved to the "cpu" for some reason. This PR makes sure that the input and the output to the `forward(..)` method remain on the same device. 

Fixes #16315 


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md#start-contributing-pull-requests),
      Pull Request section?
- [x] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)?  https://github.com/huggingface/transformers/issues/16315
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/master/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/master/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

@LysandreJik

_The documentation is not available anymore as the PR was closed or merged._<|||||>1/ Is my fix correct? Was there any other reason to keep this on CPU?
2/ Do I need to write any tests?
3/ Could someone rerun the Model templates runner / run_tests_templates (pull_request) task for me?<|||||>cc @Narsil <|||||>@LysandreJik The discussion happened in the original issue: https://github.com/huggingface/transformers/issues/16315