buildDemangledToMangledMap
Builds a reverse lookup map from demangled C++ names to mangled LLVM symbols.
Given a set of mangled LLVM symbols (e.g., extracted from module.ll), demangles them via the configured pinned LLVM demangler and returns a map keyed by the fully qualified demangled name (including namespace). This allows looking up the mangled symbol for a user-provided demangled token (e.g., from interfacePoints { } DSL).
Because LLVM demangling can append qualifiers like const, volatile, noexcept that DSL tokens typically omit, the map also stores a stripped key (without trailing qualifiers) so that ns::Class::Method() matches ns::Class::Method() const.
When multiple mangled symbols demangle to the same fully-qualified name, the first match wins and the duplicates are recorded in DemangledToMangledResult.duplicates. Callers should inspect duplicates and report errors/warnings as appropriate — ambiguous symbols can cause incorrect analysis results (e.g., resolving to a test fixture instead of the real implementation).
Return
DemangledToMangledResult containing the lookup map and any detected duplicates.