[Vision] `.to` function for ImageProcessors
# What does this PR do?

PoC for adding `.to` support on ImageProcessors

related #20453

_The documentation is not available anymore as the PR was closed or merged._<|||||>Here is a quick v1, but I am afraid it's a bit too much in the sense that I am literally testing every possible combination 
Also regarding tests, we can remove them or put them as slow. I checked with `deit`, `vit` & `vilt` (for multimodal setup) and the tests are green (the failing test for LayoutLM can be easily fixed)
May I ask you to have a quick look @sgugger @ydshieh ? Thanks!<|||||>You're looking at something too complicated: `to()` does all that work for you already. You can pass it a string, a device or a dtype.<|||||>Yes I was thinking of something very complicated where someone could set `.to(device, dtype)` let's maybe keep it even simpler and force the user to put only a single argument in `.to` ?

EDIT: it seems that there is a workaround for that<|||||>Thanks everyone for the feedback! Let me know if you think it's relevant to add the `test_cast_dtype` for all ImageProcessors as it may slow down our CI testing suite<|||||>Ahaha no worries! thanks for all the iterations 💪 