[DeviceSanitizer] Fix circular library dependency causing undefined symbol (#22901)
Commit 0941896bca24 ("[DeviceSanitizer] Make sanitizer metadata globals
per-module unique (#22567)") made SanitizerPostOptimizer.cpp in
LLVMSYCLLowerIR call sycl::isModuleUsingMsan(), which is defined in
LLVMSYCLPostLink. LLVMSYCLPostLink already links against
LLVMSYCLLowerIR, so this created a circular library dependency. It
doesn't show up when linking against full static LLVM libs, but breaks
with `ld.lld: error: undefined
symbol:llvm::sycl::isModuleUsingMsan(llvm::Module const&)` when building
LLVMSYCLLowerIR as a standalone shared library (-slibs build).
Fix by moving isModuleUsingAsan/Msan/Tsan down into
SYCLLowerIR/SYCLUtils.{h,cpp}, which has no dependency on SYCLPostLink.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>