MaskFormerFeatureExtractor doesn't process instance segmentation maps correctly
### System Info

- `transformers` version: 4.22.0.dev0
- Platform: macOS-10.16-x86_64-i386-64bit
- Python version: 3.8.13
- Huggingface_hub version: 0.9.1
- PyTorch version (GPU?): 1.11.0 (False)
- Tensorflow version (GPU?): 2.9.1 (False)
- Flax version (CPU?/GPU?/TPU?): 0.5.0 (cpu)
- Jax version: 0.3.6
- JaxLib version: 0.3.5
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

### Who can help?

@NielsRogge @sgugger 

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

`MaskFormerFeatureExtractor` takes the following arguments as input:
- images: images to be segmented
- segmentation_maps (optional): can either be pixel-wise class annotations (default) or pixel-wise instance id annotations
- instance_id_to_semantic_id (optional): a dictionary (`Dict[int, int]`) that maps instance ids to class ids. If this is given as input, `segmentation_maps` inputs are treated as instance segmentation maps

Configuration arguments:
- reduce_labels (optional): decrements segmentation map values by 1, should be set to `True` if the dataset labels start from 1
- ignore_index (optional): `background` pixel values denoted with 0 are replaced with the `ignore_index `

If `instance_id_to_semantic_id` is provided, `MaskFormerFeatureExtractor` needs to create binary masks for each object instance in the image and should be able to handle overlapping objects of the same category. The binary masks then should be mapped to their corresponding class id. However, the current implementation of `convert_segmentation_map_to_binary_masks()`:
- Performs label reduction before mapping instance IDs to class IDs
- Converts instance segmentation maps to semantic segmentation masks before creating binary masks, causing the instance level information to be lost

### Expected behavior

If instance segmentation maps are provided as `segmentation_maps` to `MaskFormerFeatureExtractor.convert_segmentation_map_to_binary_masks()`:

1. segmentation_maps should be directly used to create binary masks
2. `instance_id_to_semantic_id` mapping should be used to map binary mask values (insance IDs) to corresponding object class IDs 