[Tests] Add attentions_option to ModelTesterMixin
# What does this PR do?

The library is called HuggingFace Transformers, I know.. but we recently have additions of non-Transformer based models, that don't use attention (namely ConvNeXT and PoolFormer). Soon, we'll also have ResNet in the library (which will back Transformer-based models such as DETR).

As these models don't use attention, they need to overwrite 3 tests:
* `test_attention_outputs`
* `test_retain_grad_hidden_states_attentions`
* `test_model_outputs_equivalence`

This PR adds a `has_attentions` attribute to `ModelTesterMixin` which can be set to False for such models. It will then make sure these tests are properly tested, without taking into account attention.
_The documentation is not available anymore as the PR was closed or merged._<|||||>You'll need to fix the failing tests as well.<|||||>Thanks for this work @NielsRogge !

I left a review comment (question) about `test_forward_signature`.

And then a minor question here:

https://github.com/huggingface/transformers/blob/114b62cc9927d85804540d46a6f85e57ba13ea51/tests/test_modeling_common.py#L1046-L1049

It is a bit strange (to me) to have `config.output_attentions = True` without any condition like `if self.has_attentions:`. WDYT?<|||||>@LysandreJik I've fixed the failing tests, failing test seems unrelated<|||||>Feel free to merge if every test passes after a rebase