Simplify injectors for frontend.java

- delete InjectorForJavaSemanticServices, replace its usages with
  InjectorForJavaDescriptorResolver
- delete unneeded fields and parameters of InjectorForJavaDescriptorResolver
Delete PsiDeclarationProviderFactory
Delete JavaSemanticServices.getTypeTransformer()

Two clients can depend on JavaTypeTransformer directly instead of
JavaSemanticServices
Delete JavaSemanticServices

Almost in all places only JavaDescriptorResolver was needed. The only exception
is JavaPackageScope which needs PsiClassFinder, that is now passed as a
constructor argument.

Also merge JavaPackageScopeWithoutMembers into its superclass JavaPackageScope
Simplify PsiDeclarationProvider

- simplify hierarchy, now there's only two kinds of providers: for packages and
  for classes
- remove getters from providers and thus almost get rid of dependencies on them
  from the outside resolver (the only usages left are those that call
  getMembersCache)
Delete PsiDeclarationProvider

And its two subclasses. Replace it by package-local MembersProvider, which is
used only in java scopes, and two factory methods (for package & for class)
Delete JavaInnerClassResolver

Move its two methods to the place where they are used
Move java visibilities to JavaVisibilities class

Move related utilities to where they're used
Minor, move utilities to where they are used
Move classes around in frontend.java

Move Java<->Kotlin class mapping to 'mapping' package, move method mapping to
'kotlinSignature' (and make it package local), delete unused methods
Move SAM utils from MembersCache to SAMUtils