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
Refactoring: remove LightClassStubWithData, use generics for KotlinJavaFileStubProvider
Refactoring: Simplify subclass graph
Refactoring: method rename
-- Very temp - filter for class generation
-- Make cache for lazy resolve delegate to trace cache and store values
-- Temp single injector for lazy res resolve (unfinished)
-- Temp code for error resolve
Test that lazy resolve is able to do propagation in Kotlin-Java-Kotlin hierarchy

Patch by Evgeny Gerashchenko
-- Guard creating light classes with factory
-- Temp - check 4344
Remove search for external packages
-- Remove unused class
-- Restrict search to sources
Compile java sources into library
Check reference to Java root class from library