Refined merging logic #KT-5844 Fixed

If merging primitives of different integral types (e.g. I and Z) return
INT.
Else return UNINITIALIZED_VALUE
Minor refactoring: use array of MethodTransformers

instead of delegation
Simple version of redundant GOTO's removing
Fixed tests
Restore accidentally removed String.getBytes() and mark as deprecated (discouraged).
KT-5863: Inlined try/catch/finally block with non-local return doesn't work properly

  #KT-5863 Fixed
Manually implement scopes for ModuleSourceInfo

This allows for a faster contains(VirtualFile) check
Compute builtins directory url only once
Minor: Convert PackageIndexUtil to Kotlin
Minor: rename and refactor PackageIndexUtil#containsAny()
Cache result of getAllPossiblePackageClasses()

Move this utility from IDELightClassGenerationSupport to PackageIndexUtil
Minor: convert CopiedCode to Kotlin
Minor: remove some redundant not null assertions from Kotlin code
Do not store psi in CopiedCode

It is transferable and can exist even if project is closed