[libc++] Fix modules builds when features are removed

When some headers are not available because we removed features like
localization or threads, the compiler should not try to include these
headers when building modules. To avoid that from happening, add a
requires-declaration that is never satisfied when the configuration
in use doesn't support a header.

rdar://93777687

Differential Revision: https://reviews.llvm.org/D127127

NOKEYCHECK=True
GitOrigin-RevId: 0e9a01dcac99ccf599738cef394b840b126d5cc9
diff --git a/include/csignal b/include/csignal
index 81ca890..c1b58f8 100644
--- a/include/csignal
+++ b/include/csignal
@@ -41,7 +41,10 @@
 
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
-#include <signal.h>
+
+#if __has_include(<signal.h>)
+# include <signal.h>
+#endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header