Extracted 'deparenthesizeArgument', used it where necessary
 #KT-6176 Fixed
DONT_CARE placeholder can be nullable after a substitution
Interpret it as DONT_CARE as well (not as an error type where an error was generated before)
 #KT-6175 Fixed
Fixed error reporting for special constructions (if, elvis)

Track whether an error was reported for sub expressions (like 'if' branches) or it should be reported for the whole expression
 #KT-6189 Fixed
Set the right call operation node for implicit invoke
Make a call for implicit invoke safe if an outer call is safe
Fix for 'if' special construct type

If one branch has Nothing type (contains 'return', etc.),
return result type of corresponding resolved call (it may depend on smart casts)
 #KT-6242 Fixed
Uncommented test when extensions are called for nested calls
Fixed argument for error message 'TYPE_PARAMETER_AS_REIFIED'
Small refactoring: replaced code with 'getOrPut' library function
Added test for KT-4711
Error type with no error reported from type inference
 #KT-4711 Fixed
Updated lazy log tests
Moved tests
that are used both for codegen & diagnostics to codegen/box/diagnostics