Fix crash if a submodule overrides one of its own macros, and add support for
submodule macro overriding within the same top-level module (necessary for the
testcase to be remotely reasonable). Incidentally reduces the number of libc++
testsuite regressions with modules enabled from 7 to 6.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@203063 91177308-0d34-0410-b5e6-96231b3b80d8
[Layering] Update include of Linker.h to match its move to a Linker
subdirectory in LLVM r203065.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@203067 91177308-0d34-0410-b5e6-96231b3b80d8