types: singleton subtype semantics, typemap guards, datatype.c update
Singleton subtype: types with free typevars are singletons — only
themselves and Bottom are subtypes (in jl_subtype_env public API).
Typemap guards: add NULL/validity checks in jl_typemap_assoc_by_type
tname walk to handle partially-constructed types encountered during
recursive type definitions. Without these guards, ConstType dispatch
tuples that reference types being constructed could crash in
mtcache_hash_lookup.
Remove outdated hasuniquerep reference in jl_pointer_egal comment.
Restore T54757 recursive type test (now works with the guards).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>