Add MAE
# What does this PR do?

This PR implements [MAE](https://github.com/facebookresearch/mae) (Masked Autoencoders are Scalable Vision Learners) by Facebook AI.

I've implemented it as a separate model in the library, as the model is quite specific (encoder only operates on visual patches, next a mask token is added and the decoder reconstructs pixel values based on encoded visual patches + mask tokens). The model without decoder on top is called `ViTMAEModel`, the model with decoder on top is called `ViTMAEForPreTraining` (inspired by `BertForPreTraining`). 

After pre-training, one can load the weights directly into a `ViTForImageClassification`.

* Models are on the hub: https://huggingface.co/models?other=vit_mae

* Demo notebook: https://colab.research.google.com/drive/1edgG0ne4VNQrc11uAS0wzogg5HblzK2s?usp=sharing

To do:

- [x] fix some tests. However, these fail due to the non-deterministic behaviour of the model (a random mask is generated in each forward pass). I can make the integration test deterministic by adding `torch.manual_seed(2)`, however adding this on top of the test file doesn't make it deterministic for other tests.