analyze a lot of expressions in independent of context (expected type) mode
removed unused method
fixed ArrayIndexOutOfBoundsException in quick fix util

(in 'getParameterCorrespondingToValueArgumentPassedInCall')
fixed: use function placeholder when there is no declared value parameter list

 (not when there is no value parameters)
added UNIT_EXPECTED_TYPE

use it for coercion to unit instead of repeating analysis twice
refactoring: extracted method 'getTypeOfLastExpressionInBlock'
analyze all arguments with unknown expected type
 in the beginning of call resolution process
removed unnecessary parameter

resolve argument without temporary trace
(it's resolved and put to call trace in the beginning anyway)
Use temporary cache when resolve function literals twice
fixed: dataFlowInfoForArguments was not set in call candidate context
removed obsolete use of temporary trace
always analyze 'if' as a call

not only if it's analyzed as an argument
wrap if branches in blocks
test data updated

arguments analyzed even if there's type inference error
analyze labeled function literals as usual ones

(specially as function literals, not as other expressions)
LabelResolver moved to ResolutionContext

(from ExpressionTypingContext)
small fixes after review
refactoring: extracted all diagnostic messages to 'diagnostics' list

fixed test after messages order changed
fixed test after changed type inference error message
 changed order or 'found' and 'required' types
refactoring: fixes after review

rename, removed unnecessary methods, improved test