Authorize args when instantiating an AutoModel
The current `_BaseAutoModelClass` class initialization does not accept any argument, and therefore fails with an arcane error when instantiating it incorrectly, as shown in https://github.com/huggingface/transformers/issues/11953 by @g-karthik:

```py
from transformers import AutoConfig, AutoModelForCausalLM

config = AutoConfig.from_pretrained("gpt2", return_dict=True, gradient_checkpointing=False)
model = AutoModelForCausalLM(config)
```
```out
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() takes 1 positional argument but 2 were given
```

This PR adds possible arguments and keyword arguments so that the error is always correctly raised:

```out
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/xxx/transformers/src/transformers/models/auto/auto_factory.py", line 361, in __init__
    raise EnvironmentError(
OSError: AutoModel is designed to be instantiated using the `AutoModel.from_pretrained(pretrained_model_name_or_path)` or `AutoModel.from_config(config)` methods.
```

Taking this opportunity to re-open the question asked by @g-karthik of whether the `AutoModel`s should have the ability to be instantiated using configuration objects via the `__init__`, similarly to other `PreTrainedModel`s.

@patrickvonplaten @sgugger 
@LysandreJik thanks for this!

Yeah IMO it'd be great if the instantiation of `AutoModel`s from a configuration follows a similar signature as that of instantiation of regular model classes from a configuration, just from a consistency standpoint because `AutoModel`s are already effectively treated as models via `modeling_auto.py` just like any other model.