refactor: eliminate circular import by separating model management functions
- Create model_management_mgpu.py for centralized model lifecycle tracking
- Move memory management functions from device_utils.py to new module:
* multigpu_memory_log, track_modelpatcher, trigger_executor_cache_reset
* check_cpu_memory_threshold, prune_distorch_stores, try_malloc_trim
* force_full_system_cleanup
- Update imports across codebase (distorch_2.py, distorch.py, __init__.py,
nodes.py, checkpoint_multigpu.py)
- Resolves device_utils.py ↔ distorch_2.py circular dependency
- Follows established clean coding patterns with fail-fast error handling
Addresses critical CPU memory leak investigation infrastructure by ensuring
proper module separation for comprehensive memory management utilities.