KT-4008 'Replace if with when' is available but does not work
Support building many modules "as one": merging all the paths etc

This is for a workaround implementation of support for mutually dependent modules
Support circular dependencies

We generate a module script with information on all modules in the chunk, then build the whole chunk as "one big module"
Add kotlin-runtime to compiler classpath
Do not fail with NPE if a class is not found in preloader
Do not write 'jet.volatile' annotation to class files

ProGuard fails when it sees a class named 'volatile'
Add missing annotation classes
'runtime' module replaced by 'kotlin-runtime' library
'runtime' module removed from the artifact
Bootstrap runtime used as an external dependency to the compiler
Rename
Downloading OS-specific build of IDEA and set +x permissions
Build a special compiler jar for maven that contains the runtime as well
Fix absence of highlighting for 'as', 'in', 'is' keywords
Test framework fix: Load kotlin test classes in separate class loader
Let the user know that class object bounds are not supported

KT-4080 Code analisys show all good, but got compile error

#KT-4080 Fixed
Extract method: initApplication
Produciton code uses a shared application between many projects.
Tests always dispose the application together with JetCoreEnvironment
Use reference counting to dispose the application when needed
Using Disposer.newDisposable() instead of an anonymous class