Move test files to test data root
Add test for obsolete issue

 #KT-4434 Obsolete
Use reflection in Ant task to invoke compiler

This will allow a more controlled management of the runtime that the compiler
is linked against. Incidentally this also allows Ant task to use any of
compiler arguments via <compilerarg> because Ant task is now just a facade for
the CLI compiler.

The test "wrongArguments" is deleted because the full compiler usage is now
printed out on a wrong <compilerarg>, and this will become inconvenient to
update with each change in compiler arguments

 #KT-5618 Fixed
+ ant task
Minor, remove pointless comment and broken URL
Compile kotlin-runtime-minimal.jar, run proguard against it

ProGuard complains if we're trying to shrink compiler with the full runtime in
dependencies because for the compiler produced on the first step of bootstrap
these two jars contain conflicting classes. This won't matter in the final
distribution because we will strip 'core' modules from compiler.jar. But this
matters in the first step because core will be different in the compiler (used
to load compiled class files) and in the reflection (used to introspect symbols
at runtime).

kotlin-runtime-minimal.jar still contains the complete reflection API and some
stub implementations in module 'reflection.stub.jvm', but doesn't have core, so
it won't cause a proguard error
+ minimal runtime
Rework bootstrapping compiler with runtime in build.xml

Do not pack the runtime into the compiler on the first step of bootstrap, but
rather leave it as a separate file named kotlin-runtime-internal-bootstrap.jar.

This new solution will allow compiler to use its own classes from "core", not
the ones used by the runtime it depends on
Rename MessageRenderer constants
Refactor CompilerRunnerUtil

Eliminate code duplication, add NotNull, make everything private, etc
Load compiler dependencies in a separate class loader in IDE compiler runner

To be able to invoke the intermediate compiler built on the first step of
bootstrap: in contrast to the distributed compiler, it's incompatible with the
runtime produced by itself and should instead be run with the runtime in the
classpath which was used to compile it.

Drop the non-preloader mode of running compiler, because it would require using
a special parent-last class loader with exceptions specified by ClassCondition

1
Minor, rename module to conform to naming style
Include different runtime into plugin for bootstrap build
Synchronize access to mutable class loader reference in CompilerRunnerUtil
Simplify KotlinCompilerRunner and CompilerRunnerUtil
Move ExitCode to cli-common, simplify KotlinCompilerRunner

- check exit code's toString instead of integer code: more readable and stable
  this way
- call newInstance() on arguments' classes instead of pointless constants
Don't store class loader in CompilerEnvironment

Modules jps-plugin and ide-compiler-runner are loaded by the same class loader
Preloader: support many resources by given name
Preloader: support loading classpath dependencies from manifest

Move this logic from ide-compiler-runner. This fixes running 'kotlinc' CLI
compiler locally when the runtime is changed binary incompatibly
Preloader: extract nested classes to top-level