[`core`] Refactor of `gradient_checkpointing` (#27020)
* v1
* fix
* remove `create_custom_forward`
* fixup
* fixup
* add test and fix all failing GC tests
* remove all remaining `create_custom_forward` methods
* fix idefics bug
* fixup
* replace with `__call__`
* add comment
* quality