Compile java sources into library
Check reference to Java root class from library
Remove external packages search from file base declaration provider

External package should be found because of proper module configuration
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
Force resolve descriptor type
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
Add ability to filter out some particular classes from generator
Add cache delegating to lazy resolve session for source classes search
Search classes by qualified name only in sources to prevent recursion
Single injector for lazy resolve with java lazy resolve
Tests for construction light classes containing members with inference
Test that lazy resolve is able to do propagation in Kotlin-Java-Kotlin hierarchy

Patch by Evgeny Gerashchenko
Refactoring: inline KotlinLightClassContextCache behaviour
Remove eager resolve for getting light class context