[Sema] Resolve placeholder types before type deduction to silence spurious -Warc-repeated-use-of-weak warnings
The spurious -Warc-repeated-use-of-weak warnings are issued when an
initializer expression uses a weak ObjC pointer.
My first attempt to silence the warnings (r350917) caused clang to
reject code that is legal in C++17. The patch is based on the feedback I
received from Richard when the patch was reverted.
Differential Revision: https://reviews.llvm.org/D62645