Refining calculation of max stack size. #KT-5548 Fixed

It used for inline and optimization

Added new MethodVisitor's decorator within objectweb.asm package because
there are a lot of usages of package-protected members

Large portion of MaxStackFrameSizeCalculator is carefully copy-pasted from
MethodWriter parts that are relevant to max stack size calculation
Refining conditions if method can be optimized
Merge pull request #506 from bintree/max-stack-calc-refining

Refining calculation of max stack size. #KT-5548 Fixed
Minor improvements to inline tests
Use '$' instead of '-' in package part class names

Otherwise some tools break (e.g. CheckMethodAdapter in ASM, used in generic
signature writer) because they expect class names to be Java identifiers.

Some tests fixed, some will be fixed in future commits
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
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