Improve semantic segmentation models
# What does this PR do?

* add SegFormer documentation (including a figure)
* fix padding (fixes #14332) for SegFormer
* add attribute to the configuration of SegFormer and BEiT called `semantic_ignore_index`, which defaults to 255. The loss functions of semantic segmentation models typically use 255 instead of -100. The reason for this is that some datasets include a 0 in the annotated segmentation maps to indicate "background", however it can be that background is not included in any of the labels of the dataset. e.g. ADE20k has 150 labels, but "background" is not included. Therefore, one reduces the labels of all segmentation maps by 1 value, and replaces the 0 by 255 as shown [here](https://github.com/open-mmlab/mmsegmentation/blob/441be4e435127868a0c72a4e0e6b87662a4c415b/mmseg/datasets/pipelines/loading.py#L140-L145). It's only after that that images get resized using PIL. However, if we replace values by -100, PIL can't read these images, and will thrown an error.
* add option to pass `segmentation_maps` to `BeitFeatureExtractor`, and add corresponding tests.

To do:
`SegformerFeatureExtractor` currently includes the `align`, `do_random_crop` and `do_pad` arguments at initialization, however I wonder whether it's maybe better to remove those, and only include the bare minimum in the feature extractors (similar to `ViTFeatureExtractor`) to get started (i.e. resizing, center cropping, normalizing). Things like random cropping and padding is maybe already a bit too much and makes the feature extractors more complex. It's also not easy to determine good default values for this feature extractor; should it randomly crop + pad by default, or not? 
- [x] remove random cropping and padding from `SegformerFeatureExtractor`, if one agrees on this.
- [x] make tests of SegformerFeatureExtractor and BeitFeatureExtractor consistent.
- [ ] update the `preprocessor_config.json` of the semantic segmentation models on the hub.