Refactor and fix a latent bug (found by inspection) where an external AST
source that provides a declaration from a hidden module would not have the
visibility of the produced definition checked. This might matter if an
external source chose to import a new module to provide an extra definition,
but is not observable with our current external sources.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@208659 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Preliminary RTTI mangling

Implement what we currently believe is the mangling scheme for RTTI
data.  Tests will be added in a later commit which actually generate
RTTI data.

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