Extract and use name-mapping method in JetTypeMapper

It doesn't ever make sense to create JVM method signatures with names that come
directly from descriptors; we need to map some of them (<get-?> for property
accessors, <anonymous> for local functions/lambdas)
Drop BothSignatureWriter.needGenerics

It's OK to always make JVM generic signature since it's already constructed at
the end anyway
Delete different mapSignature() overloads

JetTypeMapper now is fully aware of the name it should choose for the mapped
method. The only exception is SAM conversion in ClosureCodegen, where the name
must be replaced
Remove JetTypeMapper.mapConstructorSignature()

Move its code to mapSignature with the idea of a future unification of all
signature mapping
Remove JetTypeMapper.map{G,S}etterSignature

Merge their logic with mapSignature()
Minor renames and refactorings related to JetTypeMapper
Refactor JetTypeMapper.mapToCallableMethod parameters

Pass CodegenContext instead of two parameters that are always calculated by it
and instead of the other one which is always OwnerKind.IMPLEMENTATION (except a
single case where it was context.kind, but that case doesn't seem to matter)
Fix incorrect usage of mapReturnType in param assertions
Minor refactoring in JetTypeMapper.mapReturnType
Add a convenient method JvmMethodSignature.getReturnType()
Refactor CallableMethod, add convenient methods

It no longer exposes its JvmMethodSignature
Refactor JvmMethodSignature

Rename kotlinParameterTypes -> valueParameters. Inline some other methods
Minor inline in BothSignatureWriter + toString()
Add equals/hashCode/toString for JVM signatures
Fix primitive override problem in Kotlin-Java inheritance

See the comment in JetTypeMapper
Delete outdated hack
1