[CSDiag] Always find and set correct declaration context for sub-expression type-check
Replace dedicated method with `typeCheckChildIndependently` always
setting the closest possible declaration context for type-check call.
This fixes a problem where sub-expression comes from multiple levels
or nested closures but CSDiag didn't re-typecheck parent closure.
Resolves: rdar://problem/50869732
(cherry picked from commit a5df7862636a303828cee724c6b779bc77280f65)