Use abstract factory for reflection objects on JVM

Introduce an abstract factory class ReflectionFactory which is responsible for creating
reflection objects (KClass, KProperty, ...). The meaningful implementation is
located in "reflection.jvm" where KClassImpl/KPropertyImpl/... are accessible
and can be instantiated. The default implementation will be used in the lite
runtime with no reflection and will return nulls / throw exceptions there.

Put all functions, calls to which are generated by JVM back-end, in one place:
the class named Reflection which contains only static methods. Previously these
functions were scattered across different files in module "reflection.jvm".

The code using reflection may now be compiled against either runtime, but
reflection features will work if and only if reflection is accessible at
runtime
Drop unneeded factory methods

Either ReflectionFactory or direct creation is now used instead
Drop "+StdLib" from manifest entries
Compile kotlin-runtime-minimal.jar, include into bootstrap compiler

Include minimal runtime into bootstrap compiler (step 1 of 2 in the build)
instead of the full runtime because full runtime intersects with compiler on
classes from core/ (descriptors, JDR, ...) and these classes are in fact of
different versions. This effectively means that reflection can't be used from
the compiler, otherwise bootstrap compiler will not link (in fact it will only
fail at runtime when/if the reflection usage is reached).
1