Handle function name conflicts in _LIBCPP_MSVCRT mode

Visual Studio's SAL extension uses a macro named __deallocate. This macro is
used pervasively, and gets included through various different ways. This
conflicts with the similarly named interfaces in libc++. Introduce a undef
header similar to __undef_min_max to handle this. This fixes a number of errors
due to the macro replacing the function name.

llvm-svn: 229162
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 8e5ce331936f46e259acc03a81fd7d105429cc30
diff --git a/include/module.modulemap b/include/module.modulemap
index 6aeb23f..3c0700e 100644
--- a/include/module.modulemap
+++ b/include/module.modulemap
@@ -469,4 +469,5 @@
   module __tree { header "__tree" export * }
   module __tuple { header "__tuple" export * }
   module __undef_min_max { header "__undef_min_max" export * }
+  module __undef___deallocate { header "__undef___deallocate" export * }
 }