Remove dependency of "descriptors" on Function/Condition/Processor
Remove dependency of "descriptors" on StringUtil
Remove dependency of "descriptors" on Lists

Also insert a sensible starting capacity almost everywhere
Remove dependency of "descriptors" on Maps/Sets
Remove dependency of "descriptors" on ImmutableSet
Remove dependency of "descriptors" on ContainerUtil
Remove TestOnly annotation from JetScope#printScopeStructure

Because this method is located in core/ which will be present at runtime, and
this annotation is not needed at runtime
Make "descriptors" not depend on intellij-core

Remove dependency on ProcessCanceledException with a hacky solution not to
break anything at the moment
a couple of inspections moved to idea-analysis module
kotlin-for-upsource sources
moved some components registration from registerProjectServices() to registerProjectServicesForCLI() since they don't work in Upsource
add resources and runtime libraries to idea-analysis
Disabled inlining in bytecode tool window by default.

It produces exceptions when inlined function is defined in other file.
Made incremental cache per-module.

Reused IDEA framework which manages per-module storage.
Moved incremental cache API to separate package.
Passing class loader instead of factory to compiler.
Removed storing module ids in incremental caches.
Made compiler report source to output mapping when invoked from JPS.
Minor. Added toString() to CompilerConfiguration.
Removed passing incremental cache base dir via module script.