[lldb] Move parsing of mangled names into C++ language plugin (#232921)
Currently Symtab::InitNameIndexes() parses Itanium and MSVC names
itself, so a language plugin can't add its functions to the basename and
method indexes without patching Symtab.
This patch moves that parsing, along with
Mangled::GetRichManglingInfo(), into CPlusPlusLanguage using a new
Language::MangledNameParser interface. A parser reports a function's
basename, its context, and what the mangling says about that context.
Symtab still decides which index the name goes into, and still infers
which C++ contexts are classes from their constructors and destructors.
Assisted-by: Claude