[6.1][cxx-interop] Fix nested structs for non-opaque types
Explanation: Fixes an issue where the generated reverse interop header would not
compile for nested types when library evolution is off. While this is a
bug in a new feature in 6.1, users upgrading from 6.0 to 6.1 can see
this as a regression because the new constructs that we started to
expose to the interop header in 6.1 will trigger the compilation error.
Scope: C++ reverse interop for nested classes for non-opaque types.
Issue: rdar://147882976
Risk: Low, the fix is fairly targeted. While it does affect other (non-nested
type) scenarios, those changes are straightforward making some names fully
qualified. Moreover, that is well tested in our test suite.
Testing: Added tests to test suite
Reviewer: @egorzhdan