render type correctly in html for TYPE_INFERENCE_UPPER_BOUND_VIOLATED error
KT-422 Tune literal typing rules so that varargs overloaded by primitive types work
 #KT-422 fixed
refactoring: changed the order of the parameters
use declared upper bounds in type inference (not just check them)
- simple cases supported
#KT-2856 fixed
substitute upper bounds after creating all substitutions for type parameters
  (otherwise it doesn't work for forward references)
extracted method commitResolutionCacheData

commit resolve data after argument analysis with temporary trace
added dataFlowInfo to resolvedCall

(to use it information later without repeating 'getTypeInfo' from cache)
=> getResolvedCallForFunction and getVariableType made static
added CallExpressionResolver

call expression resolution logic moved there (from BasicExpressionTypingVisitor)
getQualifiedExpressionTypeInfo moved to CallExpressionResolver
CallExpressionResolver made a component
moved getStaticNestedClassesScope to DescriptorUtils
added 'namespacesAllowed' flag to ResolutionContext
rename CallResolutionContext to CallCandidateResolutionContext
rename ResolutionContext to CallResolutionContext
introduced ResolutionContext (without call)
introduced common supertype for contexts (ResolutionContext)
BasicResolutionContext renamed to BasicCallResolutionContext
contexts moved to subpackage
do not repeat initialization of candidate call if the context is copied
use CallExpressionResolver directly from ArgumentTypeResolver
moved 'makeTraceInterceptingTypeMismatch' to ExpressionTypingUtils
analyze function literals only if argument types are known
(through the first phase of overload resolution)
use intercepting type mismatch trace to backtrace expected type errors