Support creating flexible types in tests

Flexible types can not be created in normal user code, but if there's a special classifier `kotlin.internal.flexible.ft` with two type parameters,
its occurrences are replaced by flexible types, e.g. `ft<Int, Int?>` becomes `Int!`
toString() for easier debugging
Clean up declarations of runReadAction() etc
DescriptorRenderer can now render flexible types for code (i.e. `ft<L, U>`)
Flexible types supported in Extract Function when used from debugger/evaluate expression