Completely rewritten keyword completion implementation using another approach

 #KT-2816 Fixed
Fixed KT-5809 Code completion after "?." should not include keywords

 #KT-5809 Fixed
Checked that KT-2832 has been fixed

 #KT-2832 Fixed
Checked that KT-2795 has been fixed

 #KT-2795 Fixed
Fixed tests
Keyword correction: more correct behavior + smaller file text
Keyword correction: smaller file text
Fix in keyword completion
Minor refactoring in keyword completion
Keyword completion: added missing 'out' keyword
Added a test
Keyword completion uses simple prefix matching only
Minor
Fix and refactor ExpressionCodegen#pushClosureOnStack

- change Closure parameter to ClassDescriptor, load closure in the beginning
- invert and rename boolean parameter, also use it only to prevent pushing
  dispatch receiver (not the extension receiver) onto the stack because the
  only non-trivial usage of it is preceded by manual handling of the dispatch
  (not extension) receiver. This fixes innerOfLocalCaptureExtensionReceiver.kt
Don't put outer instance twice for anonymous object extending inner

 #KT-5343 In Progress
Pass correct outer instance in complex case of inheritance

 #KT-5343 Fixed
Uncomment previously failing code in J2K after fixing KT-5343
Add test for outdated smart cast with elvis issue

 #KT-5335 Obsolete
Regenerate tests
JS backend: increment counter for fresh names