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
JS backend: original long.js from closure-library
JS backend: prepare long.js for use in translator
JS backend: add support for Long type
JS backend: tests for Long type support
JS backend: support for char type
JS backend: tests for char type
~ charEquals.kt
~ longCompareToIntrinsic.kt
~ JsNumberLiteral.java
~ fixes after review
~ fixes after review 2
~ ?? experiments with LongOperatorFIF.kt