Add support for multiple models for one config in auto classes
# What does this PR do?

This PR adds support for having multiple models with the same config be in the same auto class. For instance `FunnelBaseModel` and `FunnelModel` are both valid models for the class `AutoModel` but since they both rely on `FunnelConfig`, only `FunnelModel` was in the model mapping for `AutoModel`.

The mechanism when loading changes slightly: if the mapping finds a tuple for the config at hand, it will look into the `architectures` field and return the model in the tuple corresponding to the architecture found there, or the first model of the tuple as a default.

While diving into this, I realized that TF and Flax pretrained models do not populate the field architectures of their configs, so I added support for this.

The rest of the changes are need to adapt to the fact some model mappings now can have tuple values.