[`Blip2`] Add `Blip2Model`
# What does this PR do?

This PR adds a new class `Blip2Model`, so that the model can be mapped in `AutoModel` mapping and also used by users that wants to conveniently extract text, image, & the so-called q-former features from the model. 

This PR also addresses this comment: https://github.com/huggingface/transformers/pull/21708#pullrequestreview-1308704909

I decided to still keep `AutoModelForCausalLM` & `AutoModelForSeq2SeqLM` for `self.language_model` as using `AutoModel` there leads to keys that are not properly loaded from the Hub. Let me know if you think that this is a mistake and should be addressed differently

cc @sgugger @MKhalusova @stevhliu 

_The documentation is not available anymore as the PR was closed or merged._<|||||>Thanks! Once it's merged, I'll create a small PR to update the troubleshooting section. 