Make DescriptorRenderer escape names with dollars and other characters

 #KT-5791 Fixed
Fix safe call on a static method in JVM back-end

 #KT-5796 Fixed
PSI Pattern Matching: Implement expression unifier
PSI Pattern Matching: Add equivalence tests for JetPsiUnifier
Introduce Variable: Use expression unifier to find duplicates
Drop JetPsiMatcher class and use JetPsiUnifier instead. Drop AbstractJetPsiMatcherTest
PSI Pattern Matching: Add support of weak matching
Extract Function: Implement duplicate search
JS backend: test for KT-4381: JS: fails to iterate over Double range

#KT-4381 obsolete
Minor: revert semicolons after package declaration for java parts inside kt file.
Not clearing incremental cache on compilation error.
Fixed IAE because of compiler bug.
Compare constructed descriptors in diagnostics tests
Regenerate test data with constructed descriptors for diagnostics tests
Refactoring: Extract filter for skipping built-ins packages
Remove lazy base test - there won't be lazy and eager mode soon
Regenerate for testCompilationErrorThenFixed test
Fix navigation to data class copy function
Minor: Remove unused function added in earlier commit
PSI Pattern Patching: Use precomputed context for matching of substitution parameters