++Record reference to class object directly
Refactoring in PositionStrategies: added markRange(from, to)
Small improvements in error reporting
Position error on 'class A' or 'object A' instead of name identifier only
Resolve type of anonymous object in local object as local
Prohibit local objects and enum classes
  #KT-5402 Fixed
  #KT-4838 Fixed

Resolve type of object inside local object as special, not supertype('Any').
Changed visibility of constructor of anonymous object to 'internal' to be able to resolve the following:
fun box(): String {
    var foo = object {
        val bar = object {
            val baz = "ok"
        }
    }
    return foo.bar.baz
}
The containing declaration of property initializers is constructor, so 'baz' was invisible inside private constructor.
Render name of class object as 'class object of MyClass'
Fixed NPE in ArgumentMatchImpl.getStatus
Check value arguments if there is wrong number of type arguments
Render 'defined in' in resolved call tests
Refactoring in PositioningStrategies
Rename: NAME_IDENTIFIER -> DECLARATION_NAME
NAMED_ELEMENT -> DECLARATION_SIGNATURE
DECLARATION, DECLARATION_OR_DEFAULT (merged) -> DECLARATION_SIGNATURE_OR_DEFAULT
Refactoring: extracted interface Qualifier (that is not a ReceiverValue)
Use EXPRESSION_DATA_FLOW_INFO instead of NON_DEFAULT_EXPRESSION_DATA_FLOW
Extracted util function 'recordScopeAndDataFlowInfo'
Refactoring: extracted 'BindingContext.getDataFlowInfo'
Don't check class object visibility when it's in qualifier position
(visibility for member is checked anyway).
It might be better to underline invisible qualifier in a chain (class or class object), not the last one (member) - for later improvement.
Added error 'NESTED_CLASS_SHOULD_BE_IMPORTED'
 when nested class is resolved through implicit this
++Position error on 'class A' or 'object A' instead of name identifier only
++Resolve invoke on class objects and enum entries
test