[ty] Preserve `Divergent` when materializing recursive aliases (#24245)
## Summary
`TypeMapping::Materialize` now preserves `DynamicType::Divergent`
instead of collapsing it to `object` or `Never`, so the cycle marker
remains intact during recursive alias solving.
Closes https://github.com/astral-sh/ty/issues/3134.