c++: tpl-tpl-parms are not canonicalizable types [pr94454]
We treat tpl-tpl-parms as types. They're not; bound-tpl-tpl-parms
are. We can get away with them being type-like. Unfortunately we
give the original level==orig_level case a canonical type, but the
reduced cases of level<orig_level get structural equality. This patch
gives them structural type always.
* pt.c (canonical_type_parameter): Assert not a tpl-tpl-parm.
(process_template_parm): tpl-tpl-parms are structural.
(rewrite_template_parm): Propagate structuralness.