AddressSanitizer creates a function within the module, which calls
__asan_init. This function is then added to the module's constructors.
ThreadSanitizer, and MemorySanitizer, however, add their respective init
functions directly to module constructors. This prevents these
sanitizers be used in certain cases, where module constructor must be
implemented in instrumented object itself. This patch unifies how
sanitizer constructor functions are created, and how init functions are
called across all sanitizers.
Moved checkInterfaceFunction into ModuleUtils.
here and below, please use a file-static named constant (e.g. kSanitizerName)