standardize `DistilBert` class names
Author: younesbelkada
Pull request: yes

# What does this PR do?

This PR aims to standardize the module names of `DistilBert`. For example, previously the `DistilBert` layers were named `TransformerBlock` instead of the current convention `xxxLayer`. This PR addresses this, by changing the names of some core modules of `DistilBertModel`.

This way this model that is highly used on the Hub can easily benefit from `BetterTransformers` speedup using `optimum` library as such:
```
import torch
from transformers import AutoModel
from optimum.bettertransformer import BetterTransformer

model = AutoModel.from_pretrained("distilbert-base-uncased").eval()
model = BetterTransformer.transform(model)

input_ids = torch.LongTensor([[1, 1, 1, 1, 1]])

with torch.no_grad():
    out = model(input_ids)
```
https://github.com/huggingface/optimum/pull/423

I am not sure but I don't think this is a breaking change since none of the key names of the modules are changed, and this only touches modules that are not present in the automapping. I have also ran a quick test and made sure I am getting the same results as the model card:
```
from transformers import pipeline

unmasker = pipeline('fill-mask', model='distilbert-base-uncased')
unmasker("Hello I'm a [MASK] model.")
>>> [{'score': 0.05292877182364464, 'token': 2535, 'token_str': 'role', 'sequence': "hello i'm a role model."}, {'score': 0.039685774594545364, 'token': 4827, 'token_str': 'fashion', 'sequence': "hello i'm a fashion model."}, {'score': 0.03474348038434982, 'token': 2449, 'token_str': 'business', 'sequence': "hello i'm a business model."}, {'score': 0.034622881561517715, 'token': 2944, 'token_str': 'model', 'sequence': "hello i'm a model model."}, {'score': 0.01814521849155426, 'token': 11643, 'token_str': 'modeling', 'sequence': "hello i'm a modeling model."}]
```

cc @sgugger @ydshieh 

PS: I am unsure about these CI tests that are failing, they seem to pass on my local laptop, also the error does not give a proper traceback 🤔 
```
[gw0] linux -- Python 3.7.12 /home/circleci/.pyenv/versions/3.7.12/bin/python
worker 'gw0' crashed while running 'tests/models/distilbert/test_modeling_distilbert.py::DistilBertModelTest::test_load_with_mismatched_shapes'
=========== xdist: worker gw0 crashed and worker restarting disabled ===========
```

I am seeing the same failure message for CI tests in https://github.com/huggingface/transformers/pull/19946  and https://github.com/huggingface/transformers/pull/19975 so maybe it's unrelated to this PR but I am not sure 

Comments:
_The documentation is not available anymore as the PR was closed or merged._

Hmmm, I don't feel comfortable doing such a change. I understand it's supposed to be non-breaking, but we have had usage in the past of such classes, and the renaming here seems purely cosmetic.

I understand that it would ease your conversion in `optimum`, but I'm pretty sure you'll need to adapt the implementation to other models that do not respect the format enforced here. How much effort would be needed from the `optimum` side to support the current DistilBERT layer class names?

Thanks

Thanks a lot!
I see, I was also unsure about adding these changes. No problem, I will try to find a workaroud that should work without this modification