Raise clear error on in-place GatheredParameters edits without modifier_rank (#7817)
Fix #7811
Issue: ZeRO-3 crashes when `zero.GatheredParameters` is used with
`modifier_rank=None` and a parameter is modified in-place. The failure
surfaced as an internal invariant assert in free_param, which is not
actionable for users.
Solution: `GatheredParameters` now detects in-place mutation with
`modifier_rank=None` and raises a clear, user-facing error early. The
mutation check is synchronized across ranks to avoid divergence and
hangs.
This PR also raises a clearer error from free_param when parameters are
still active in submodules.”
---------
Signed-off-by: Masahiro Tanaka <mtanaka@anyscale.com>