Refactoring: remove unused jvmInternalName from KotlinPackageLightClassData
Store connection between files and lazy package fragment descriptor

LazyPackageDescriptor objects are going to be used as input for light class
generation. Java code generator expects to find connection between descriptors
and files in binding context.
Using lazy resolve when building light classes
Force-resolve only relevant declarations
Forced resolution of all contents enhanced
When building light classes don't resolve irrelevant declarations in the same package
-- Store binding context for local class resolve in LightClassConstructionContext
Refactoring: remove LightClassStubWithData, use generics for KotlinJavaFileStubProvider
Refactoring: Simplify subclass graph
-- Very temp - filter for class generation
-- Temp code - add cycle dependency between lazy java resolve and lazy kotlin resolve components
Refactoring: remove unnecessary constructors
Refactoring: hide fact of using injector inside lazy resolve session
Refactoring: use injector for creating lazy resolve session
Refactoring: method rename
-- Temp single injector for lazy resolve
-- Make cache for lazy resolve delegate to trace cache and store values
-- Modification to injector call (after rebase)
-- Guard creating light classes with factory
-- Update injectors after rebase