Add BEiT
# What does this PR do?

It adds [BEiT: BERT Pre-Training of Image Transformers](https://arxiv.org/abs/2106.08254) to the library. It's the first paper that enables self-supervised pre-trained Vision Transformers (ViTs) to outperform their supervised pre-training counterparts. As a picture says more than a thousand (or 16x16?) words, this is a good summary of the approach:

<img width="544" alt="Schermafbeelding 2021-08-03 om 17 26 19" src="https://user-images.githubusercontent.com/48327001/128042500-538a6fef-8d92-42b0-92f5-31d06ca6ae36.png">

The authors used OpenAI's [DALL-E](https://github.com/openai/DALL-E)'s encoder to map images to tokens, which the model then needs to predict based on masked patches. There are 3 models defined: `BEiTModel`, `BEiTForMaskedImageModeling` and `BEiTForImageClassification`.

This PR also cleans up some scripts from the library, namely those that defined id2label dicts for several datasets. I have removed `imagenet_classes.py` and `coco_classes.py` from the utils directory. Instead, id2label's are now defined on the hub in their [own repository](https://huggingface.co/datasets/huggingface/label-files). These can then be used in conversion scripts using the `huggingface_hub` library. 

## To do

- [x] Add all checkpoints to the hub, under the "Microsoft" namespace. Perhaps discuss the model names, because for example `microsoft/beit_base_patch16_224_pt22k_ft22k_to_1k` is getting out of hand
- [ ] Would be cool to have a working colab for the `BEiTForMaskedImageModeling` model. For this, tagging one of the original authors: @donglixp 

In a future PR, I also plan to add the semantic segmentation model, which obtains SOTA on Ade20k.

I've uploaded all checkpoints to the hub: https://huggingface.co/models?search=microsoft/beit

I've renamed the checkpoints which are fine-tuned on ImageNet-1k (after being intermediately fine-tuned on ImageNet-22k) to be just `microsoft/beit-base-patch16-224`, etc.

@donglixp if you're interested, could you write model cards for these models? Model cards are READMEs that describe the models in detail. You can take inspiration from ViT's [model card](https://huggingface.co/google/vit-base-patch16-224). 

Also, I do have a notebook for `BEiTForMaskedImageModeling`, but it's not working as expected. Could you please take a look? https://colab.research.google.com/drive/1Mjt-3jHw9HYMXECmSdDlbiG59ZAw-Z0T?usp=sharing<|||||>@NielsRogge great work, any news on the future PR, to add the semantic segmentation model and the pretrained Ade20k? Thanks!<|||||>@JStumpp say no more, it's added ;)