This patch attempts to fix llvm.org/PR31905.
The fix is to only allow the compiler to search the top-level include directories when looking a module.modulemap definition in ASTReader.cpp. This prevent loading arbitrary module maps from directories that would never normally be searched for a module map for _Builtin_stddef_max_align_t.
Perhaps it would be better to figure out what top-level search directory the module was originally built under, and then remove the prefix of the top-level directory. Then we could allow the search to look under matching subdirectories of other top-level search paths. However this seems like it could be incorrect as well.