Report correct parameter name in not-null assertions
Check annotation constructor parameter types
 Resolve annotations arguments in body resolver
Remove redundant parameter
Resolve annotation class constructors before other constructors
Move project descriptor to common place
KT-3729 Quick documentation support

 #KT-3729 Fixed
Refactoring: Move CompleteSession class to upper level
Add ability to search kotlin classes in selected scope
Fix wrong unnecessary completion for the case of force completion

 #KT-1187 Fixed
Complete only imported classes on auto-typing and first completion and set up invocation count
removed incorrect code from resolve tests

Resolve tests had a functionality that for primary constructor parameters
 class A(val x: Int, y: Int)
 `$x` was resolved to property descriptor while `x` was resolved to value parameter descriptor.
But it worked incorrect (see tests changes) and was senseless because 'x' in code always resolves to property descriptor.
So it was dropped.
restored priorities
members with invoke have more priority than extensions
KT-3189 Function invoke is called with no reason

prioritize tasks specially for invoke

 #KT-3189 Fixed
 #KT-3190 Fixed
 #KT-3297 Fixed
removed method 'isClassObjectAValue'

There are no sensible usages of it.
Presence of class object can be determined by 'getClassObjectDescriptor() != null' check
do not need to check stand-alone class object for class,
 when it's on the left hand side of dot it is analyzed in 'getIdForImplicitReceiver' (test added)
Resolve enum in annotation arguments
Resolve arrays in annotation arguments
Add annotation argument type in tests
Support varargs in annotation arguments