[cxxmodules] Use real modulemap names if implicit module map discovery is off.
[cxxmodules] Use real modulemap names if implicit module map discovery is off.

The current logic of pseudo-automatic modulemap discovery is a little fragile
as it mounts a virtual file named module.modulemap in the location where the
a give system library header is found (cuda.h, etc). However, if the libraries
are squashed into a single folder then we end up mounting a file over another
virtual file. This should be a hard error, however, on systems such as OSX some
libraries already come with modulemap files and we should just not mount our
predefined ones. This makes it very difficult to distinguish when to issue the
hard error.

While this patch is not a solution for the general when the modulemaps are
automatically discovered (-fimplicit-module-maps), we can use the real file
stems in cases where we are called with -fno-implicit-module-maps.

As a side effect this fixes the *non-recommended* squashing of library header
files into a single folder.

karies/root,karies/root,karies/root,olifre/root,root-mirror/root,olifre/root,karies/root,root-mirror/root,olifre/root,olifre/root,olifre/root,root-mirror/root,root-mirror/root,karies/root,root-mirror/root,root-mirror/root,olifre/root,karies/root,olifre/root,olifre/root,olifre/root,olifre/root,root-mirror/root,root-mirror/root,karies/root,olifre/root,root-mirror/root,karies/root,karies/root,karies/root,karies/root,root-mirror/root,root-mirror/root