[analyzer] Fix [[clang::suppress]] for nested templates (#183727)
For nested templates, we might need to walk the member template chain to
get to the primary template. This can be an arbitrary long chain, of the
partial specializations.
Previously, we hit the assertion `This class template must have a redecl
that is a definition` because we only walked the redecls of the given
template. However, that redecl-chain might not have a redecl that is the
definition.
Sometimes (in case of member templates) you also need to walk the member
specialization and continue walking the redecls of that one.
(Don't ask me more, because I have no clue how these nested templates
and their redecls are implemented. It just works™️)
Fixes #182659
Assisted-by: claude