Add ImageFeatureExtractionMixin
# What does this PR do?

This PR adds a new `ImageFeatureExtractionMixin` to implement the common functionality needed for images (conversion to PIL Image / NumPy array /normalize/ resize) in a framework agnostic way. While it only adds support for torch (not tf) tensors as input, support for TF tensors is easy to add in the design and will be done when we have a TF model with a vision modality.

Along the way, this PR adds a new `is_vision_available` check (depends only on PIL for now, but we can add other dependencies later on if we fill we need them. It could for instance check for torchvision when torch is installed) and the "dummy" vision objects.

I will work on adding tests tomorrow, but the general design can already be reviewed to check if it has everything needed.
cc @NielsRogge 