[objc_direct] also go through implementations when looking for clashes
Some methods are sometimes declared in the @implementation blocks which
can cause undiagnosed clashes.
Just write a checkObjCDirectMethodClashes() for this purpose.
Also make sure that "unavailable" selectors do not inherit
Differential Revision: https://reviews.llvm.org/D76643
Signed-off-by: Pierre Habouzit <email@example.com>
Radar-ID: rdar://problem/59332804, rdar://problem/59782963
(cherry picked from commit 20d704a75ed51c7a9a155aa3978d0c02671c3f69)