Add Segment Anything Model (SAM)
# What does this PR do?

Original repo: https://github.com/facebookresearch/segment-anything

Segment Anything Model (SAM) is a recent model from Meta AI that makes it possible to predict image segmentation masks given an image and various inputs such as bounding boxes, 2D points or previous masks.
It is also mentioned in the original paper that the model can take textual input, but this feature has not been released yet in the original repository.
The release came with 3 weights, namely:

- `sam_vit_b`
- `sam_vit_h`
- `sam_vit_l`

Their main difference is about the vision encoder size, the prompt encoder, and mask decoder should stay the same.

According to the paper, for each input, the model predicts 3 binary masks, corresponding to the region where the "object of interest" lives in the image.

cc @sgugger @amyeroberts 

_The documentation is not available anymore as the PR was closed or merged._<|||||>I have few comments for the reviewers before starting the review, IMO we should not expose `SamPromptEncoder` and `SamMaskDecoder` inside the main init (contrary to other models such as Blip where we used to expose the text module and the vision module) mainly because these modules cannot be used as a standalone module. The MaskDecoder needs the image embeddings and the points/bounding box/masks embeddings to predict the masks, and the Prompt Encoder is a super small module (just two embedding layers). But both the image encoder and prompt encoder can be called through `get_xxxx_embeddings` method from `SamForMaskGeneration`.
One last point regarding the PromptEmbedding module, in the paper they mention that this module should also accept textual inputs. However according to the authors this has not been released yet.

cc @sgugger @amyeroberts just FYI<|||||>Might be a few things here and there, but new pairs of eyes will help us fix fast. Pinging @amyeroberts and @sgugger for a review!<|||||>Merging as I need it to update the pipeline based on reviews. Will adresse remaining comments in a follow up PR