This is a prep patch for avoiding the quadratic number of calls to HeaderSearch::lookupModule() in ASTReader for each (transitively) loaded PCM file. (Specifically in the context of clang-scan-deps).
This patch explicitly serializes Module::DefinitionLoc so that we can stop relying on it being filled by the module map parser. This change also required change to the module map parser, where we used the absence of DefinitionLoc to determine whether a file came from a PCM file. We also need to make sure we consider the "containing" module map affecting when writing a PCM, so that it's not stripped during serialization, which ensures DefinitionLoc still ends up pointing to the correct offset. This is intended to be a NFC change.