The synthesized `$foo` projection variable for a property with an attached
property wrapper was not picking up any inferred availability from the wrapped
property or from the wrapper's `projectedValue`, causing some projections to be
more available than they should be. For back deployed applications that
reference the projections this could result in crashes due to missing symbols.
Resolves rdar://177839191.
The type of an outermost property wrapper should be printed together
with (inferred) generic arguments because otherwise if a any wrapper
in the chain has generic parameters that are not involved in
`wrappedValue:` argument it won't be impossible to infer them while
type-checking the interface file where it appears.
Resolves: rdar://122963120