Add heterogeneous config support (per-layer configuration) (#45333)
* Add heterogeneous config support (per-layer configuration)
* Updates
* Create HeterogeneousConfigMixin
* Add docs
* Update comment
* Clean up heterogeneous config access and reassignment
* __getattribute__ improvements
* Fix heterogeneous config fallbacks to use live global values
* Avoid ContextVar in heterogeneous config access for torch.compile compatibility
* Add missing HeterogeneousConfigMixin comments
* Update docs phrasing
* Use __getattribute__("__dict__") instead of catching an exception
* PR review fixes
* Add Nemotron-Labs-3-Puzzle-75B-A9B as an example
* Update model links in heterogeneous configurations doc
---------
Co-authored-by: Elad Segal <13485709+eladsegal@users.noreply.github.com>