Code simplification
More correct and simple code
Code completion: graying members after dot completion for nullable value
Immediate extension members are correctly detected for platform types
More clear code + better test
Fixed completion list ordering for java classes
Added a test
Better imported/non-imported items sorting in completion
Completion: classes not to be used in Kotlin placed to the last place
Completion: our own lookup elements for java classes
Completion: got rid of special LookupElementFactory implementation to highlight immediate members
Completion: added package name for global functions/properties in the list
Completion: immediate members get higher priority in the list
Fixed smart completion at offset 0
Fixed all members are grayed in global context
Added tests
Extension methods shown with type arguments substituted in completion list
Completion: multiple extension methods with different substitutions may be shown
Optimizations
Completion: for extension functions unsubstituted receiver type shown