Use Call instead of CallKey as a map key in ResolutionResultsCache
Added CallCompleter component
Regenerated injectors
Added NotNull annotations
Logic of completing call rewritten in CallCompleter
Changed interface ResolutionResultsCache
Removed unused methods
Removed duplication in MutableResolvedCall interface

'hasIncompleteTypeParameters()' is the same as 'getConstraintSystem() != null'
Rewrote 'isDirty' in terms of argument to parameter match status

Added ArgumentMatchStatus
Refactoring: inlined method 'setInitialDataFlowInfo'
Added tests for argument mapping
Added ArgumentMatchStatus.MATCH_MODULO_UNINFERRED_TYPES
Record argument to parameter map at the beginning
(separately from argument match status)
Changed order in call completer
 update resolution status (and report error) after completing all arguments
Update recorded type for argument in parentheses correctly
Check 'isDirty' for resolved calls replaced with check 'hasUnresolvedArguments' for call
Don't report 'cannotCompleteResolve' error if some arguments are unresolved (like 'ambiguity')
Refactoring: AbstractResolvedCallsTest
Render resolved call to a separate file
Mark required call with 'caret' in abstract resolved calls test
Do not update recorded type if it hasn't changed

It's important for argument that has a type that shouldn't be updated.
Like '(b)' in 'a == (b)', which type is 'Any' (for proper 'equals' resolve).
Type for 'b' shouldn't be updated to 'Any' as well.
Added tests on resolved call for 'this'
Added 'isExternal' to ValueArgument

'subject' is external for 'in(contains)' resolve in 'when' condition:
when (subject) {
  in range -> ...
}
All RESOLVED_CALL getters replaced with util methods
  JetElement.getResolvedCall(BindingContext)
  JetElement.getResolvedCallForSure(BindingContext)