gc: use jl_typetagof in gc_assert_parent_validity
Replace manual header bit extraction with jl_typetagof(child) and use
jl_is_datatype consistently. Also fix the error path to pass
(jl_value_t*)child_vt to jl_() rather than a jl_taggedvalue_t*.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>