Refactor SAMUtils

- create JavaTypeSubstitutor as a mirror for PsiSubstitutor
- copy-paste MethodSignatureUtil.areSignaturesErasureEqual() and migrate it to
  JavaTypeSubstitutor
- use a pair of method and substitutor instead of
  'MethodSignatureBackedByPsiMethod'
- green code
Migrate SAMUtils from PSI to JavaElement

The only PSI usage left is TypeConversionUtil.erasure(), which needs to be
copied and migrated somehow
Refactor TypeVariableResolver

Delete 'context' field which was used only for debugging
Refactor JavaSignatureResolver

Now it has the only method returning Initializer, an object which can be told
to initialize resolved descriptors later, or to obtain these descriptors.
Delete useless methods, combine the remaining ones
Rename JavaSignatureResolver to TypeParameterResolver

Also rename 'parameterResolver' field to 'valueParameterResolver'
Move and rename JDR.ValueParameterDescriptors