Extract inheritor candidate check into separate InheritanceChecker interface

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