LOL, change '-' to '$'
Store FqName in LightClassDataForKotlinClass rather than a String

It was also mistakenly named "jvmInternalName" while in fact it was holding the
result of Type#getClassName() which is not an internal name
Refactor CodegenBinding#getAsmType()

- make it return the ASM_TYPE slice value and assert it is there
- move all the computation to the separate method "computeAsmType"
- only call getAsmType() in those places where the type must be recorded at
  slice ASM_TYPE, otherwise call JetTypeMapper#mapType(), which will check the
  slice and call computeAsmType
Refactor when by enum switch codegen

Invoke getAsmType() later, not in the process of annotating the file
Move CodegenBinding#computeAsmType() to JetTypeMapper, make private
Minor, strip package name from class for script

This is done to be able to construct a FqName of this class. Currently it's not
possible because the name contains '/' and FqName validation fails.

This name is only used for debugging and even the ClassDescriptor is used only
as a key in binding context to store the internal name of the script class
Calculate inner class access flags accurately
Minor, simplify old code in ImplementationBodyCodegen
Minor, inline one of CodegenBinding#registerClassNameForScript
Refactor CodegenBinding

- store source element in synthetic descriptor for easier debugging and lesser
  amount of needed method parameters everywhere
- simplify methods which calculate necessary information for MutableClosure
(TODO) Include package part name to top level closure names

 #KT-4234 Fixed
 #KT-4496 Fixed
Check header on package part classes in MethodInliner
Workaround package part hash codes in OuterClassGenTest
Refactor and generate tests on JetPositionManager
Workaround package part hash codes in tests on JetPositionManager
Minor, exclude tinyApp test classes output from IDEA indices