Mark some expressions after processing their components
 when it's semantically correct

Expressions: calls, 'for' loops, elvis operators
It's significant for reporting 'unreachable code' correctly
Evaluate default value for argument non-deterministically
 in pseudocode
Added 'PARTLY_UNREACHABLE_CODE' error
Mark only unreachable parts of element if it has reachable parts
 like for 'return todo()' mark only 'return'
KT-2334 An error 'local function without body' is not reported
 #KT-2334 Fixed
KT-5155 Auto-casts do not work with when
 #KT-5155 Fixed
KT-5200 Mark unreachable code in lambdas
 #KT-5200 Fixed