Rewrite PropertyMetadata to Kotlin
Generate FunctionN and FunctionImplN classes in Kotlin
Rewrite built-in annotations to Kotlin
Rewrite progression iterators to Kotlin
Rewrite built-in primitive iterators to Kotlin
Generate Kotlin sources of ranges
Generate Kotlin sources of progressions

The check in DoubleProgression "if (increment == 0.0 || increment == -0.0)"
(and similar in FloatProgression) was simplified to "if (increment == 0.0)"
because 0.0 == -0.0 on JVM

Private "IsSameClass" utility is needed because we can't just call "javaClass"
property, since it would require "runtime" module to depend on
kotlin-runtime.jar (where "javaClass" is declared), which would be kind of a
cyclic dependency