Shorten references: Do no lookup packages when searching for conflicting declarations

Minor: use JetTreeVisitor
Minor: JavaCopyPastePostProcessor -> ConvertJavaCopyPastePostProcessor for clarity
Copy paste: annotations for IDEA classes and corresponding changes in ConvertJavaCopyPastePostProcessor
Kotlin code style: keywords on new line
Minor: fix JetSimpleNameExpression#getReceiver
RENAME EXPLAIN: Fix JetExpression#getReceiver()
++ RENAME EXPLAIN: Fix JetExpression#getReceiver()
++ RENAME EXPLAIN: Fix JetExpression#getReceiver()
++ RENAME EXPLAIN: Fix JetExpression#getReceiver()
Refactor: move utilities to a separate file
TODO: check REFERENCE_TARGET

Add JetPsiReference#resolveToDescriptors public method
Introduce JetReference, rename: JetPsiReference -> AbstractJetReference

Add resolveToDescriptors() to JetReference trait
Rewrite JetPsiReference to kotlin
DIRTY: unit references hierarchies
++ DIRTY: unit references hierarchies

Use ResolvedCall#getCandidateDescriptor() instead of ResolvedCall#getResultingDescriptor() because unsubstituted descriptors are expected
++ DIRTY: unit references hierarchies

Jet*Reference#getTargetDescriptors() no longer returns nullable value (convention is dropped)
++ somewhere; AbstractPolyVariantJetReference.java removed
RENAME: references impovement
Refactor: rewrite JetReferenceContributor to kotlin

Add additional utilities to track what psi elements are capable of holding references
Insert imports on paste WIP
~ Enhance tests: remove duplicated "to" files