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
Don't lookup built-in classes by invalid names

 #KT-5869 Fixed
Support static method references

 #KT-5123 Fixed
Internal visibility works the same as public

Fix test data
This change is needed to preserve old behaviour for M9
isFriend() utilities become unused after this change
Update to EAP 138.2458.8
JS backend: original long.js from closure-library
JS backend: prepare long.js for use in translator