Minor: add public modifier
Refactoring: remove unused jvmInternalName from KotlinPackageLightClassData
Refactoring: remove unnecessary constructors (prepare for injectors)
Refactoring: hide fact of using injector inside lazy resolve session
Refactoring: use injector for creating lazy resolve session
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: 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