Modeling Outputs
# What does this PR do?

This PR tries to add new model outputs to cover avoid implementing custom outputs for models that do not have attentions. Three new outputs are added:
- `BaseModelOutputWithNoAttention`
- `BaseModelOutputWithPoolingAndNoAttention`
- `ImageClassifierOutputWithNoAttention`

The docstring of the `hidden_states` and `hidden_states` shape is changed to `(batch_size, num_channels, height, width)`. The thinking behind it is models that do not output attentions are usually conv models. However, this is not quite general.

Another solution is to change the docstring of `BaseModelOutput***` to state that `attentions` will be returned only if the model has an attention mechanism.

A custom `ModelOutput` will still be needed if the returned tensors' shapes are not the ones in the docstring. One solution may be making the outputs "model aware". For example, I can define a `BaseModelOutput2D` that returns 2d tensors (`batch_size, num_channels, height, width`). Doing so will unfortunately result in a lot of new model outputs. 

Let me know your feedbacks 
_The documentation is not available anymore as the PR was closed or merged._<|||||>Updated the docstring of the outputs and replaced multiple models' outputs with the new ones<|||||>@NielsRogge Not sure what the point of your last comments. We know the modeling outputs won't work for every model and we have a strategy for that (subclass and overwrite the docstring). Did you have a suggestion on how to make the docstring more general?<|||||>Maybe we can add a statement that says that the `hidden_states` optionally include the initial embeddings, if the model has an embedding layer.<|||||>+1 on @NielsRogge idea<|||||>Looks good to me, note that we have some more vision models:

* Swin Transformer
* DeiT
* BEiT
* ViTMAE<|||||>Added correct outputs for
- DeiT
- BEiT

The following models need a custom output
- ViTMAE
- Swin<|||||>Changed the docstring for every `hidden_states` field in every `*ModelOutput*` to specify the embedding hidden state may be optional (depending on the model's architecture)<|||||>Update the docstrings and create a custom model output for SegFormer `SegFormerImageClassifierOutput`