Minor, prettify code
Don't treat values of type "Unit?" to be always equal to Unit.VALUE

Two changes here: StackValue.Constant does cast iff value is non-null (if null,
no cast between classes is really needed, as null can be an instance of
anything), and codegen for safe qualified expressions uses correct type for the
expression

 #KT-4265 Fixed
Return Unit.VALUE if Unit or Any is expected

StackValue.coerce will do its job in casting void to Unit correctly

 #KT-4212 Fixed
Make anonymous class inner
Minor, don't do unnecessary mapType
Minor cleanup in FunctionGenerationStrategy and inheritors
Minor, simplify method
Minor, fix/suppress warnings in codegen
Collect overridden descriptors for property accessors to LinkedHashSet
Unwrap fake override of original

This fixes a couple of verify errors related to the order of supertypes in the
class declaration