Add DistilBERTForCausalLM
# What does this PR do?

Similar to the BertLMHeadModel this PR aims to add a DistilBertForCausalLM model in modeling_distilbert.py.

Fixes https://github.com/huggingface/transformers/issues/7397

Replaces https://github.com/huggingface/transformers/pull/8387, https://github.com/huggingface/transformers/pull/11085

## Who can review?

@patrickvonplaten
@ArthurZucker
@younesbelkada 

The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_22614). All of your documentation changes will be reflected on that endpoint.<|||||>There is no checkpoint available for this task and DistilBERT, which is an encoder model. What is your usecase for adding this?<|||||>> There is no checkpoint available for this task and DistilBERT, which is an encoder model. What is your usecase for adding this?

@sgugger To fine-tune DistilBERT models for text generation with EncoderDecoder class.<|||||>How is it different than using BERT?<|||||>@sgugger It is not possible to create Transformer model with EncoderDecoderModel using DistilBERT checkpoint (e.g. BertConfig is supported, but DistilBertConfig is not).
If I try to create Encoder Decoder model with distilbert checkpoints like this:
`
model_name = 'distilbert-base-multilingual-cased'
model = EncoderDecoderModel.from_encoder_decoder_pretrained(model_name, model_name)
`

Error is raised: 
> ValueError: Unrecognized configuration class  for this kind of AutoModel: AutoModelForCausalLM.
> Model type should be one of BartConfig, BertConfig, BertGenerationConfig, BigBirdConfig, BigBirdPegasusConfig...<|||||>@sgugger 
@patrickvonplaten
@ArthurZucker
@younesbelkada

Anyone looking at this?<|||||>Those are not changes we want everyone to have in the distilBERT: it makes the model code too unreadable just so that you can use it in the EncoderDecoder framework. We can leave the fork open if you want to share it with others, and you can also push it in any repo on the Hub using the dynamic code feature.<|||||>I followed same code structure as in BERT. Its not only for EncoderDecoder, your current version doesnt allow usage of DistilBERT in Text generation, which can be useful.<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.