Extract inheritor candidate check into separate InheritanceChecker interface

This change is aimed at better interoperability with Kotlin plugin since default inheritor check via PsiClass.isInheritor() filters out traits inheriting from classes and hence is not applicable for search.