Add Vision Transformer and ViTFeatureExtractor
# What does this PR do?

Opening up a new PR based on #10513 which uses @sgugger's new `image_utils.py` instead of `torchvision` for the image transformations, and is up-to-date with master.

Things to do:

- [x] fix one integration test (currently `ViTFeatureExtractor` converts the numpy arrays into DoubleTensors, but the model expects FloatTensors)
- [x] fix styling (`make style` is not working as expected on my machine, see remaining comments in previous PR)
- [x] perhaps change pooler logic? Design (and updated conversion script) currently at branch "add_pooler_to_vit"

cc @LysandreJik 
I've addressed all comments. The pooler now more closely matches the one of `BertModel`. 

Only `make fix-copies` is giving an error on CircleCI for now. Other than that the PR is ready.

<|||||>Thanks for all your work on this @NielsRogge !