Add a post init method to all models
# What does this PR do?

This PR introduces the proper fix for #14388 by introducing a new `post_init` method to each model, which replaces the current `init_weights()` call. The method can execute any code that requires the model to be properly initialized, such as the `init_weights()` or the gradient checkpointing BC fix (and more if need to in the future).
 