Features:
- Kotlin: interfaces are now generated as functional interfaces whenever it is possible.
- Kotlin: static properties of classes can be now accessed also via static getter and setter generated as extension function.
- Kotlin: generated collection types are immutable.