Generating Kotlin Code for Better Refactorings, Tests, and IDE Support