Rename FQNAMES -> FQ_NAMES
Make Ref fields volatile

Otherwise local shared variables are not safe to use from several threads
Don't generate bridges for equals(), hashCode(), toString()

Otherwise an assertion is failing in the algorithm which is related to an
inconsistency of java.lang.Object inheritance in JDR (KT-4890)
Correctly map declaration owner in JVM codegen

"context.contextKind()" was incorrect in
ExpressionCodegen.intermediateValueForProperty(), because it represents the
context of the call site, not the context of the property declaration

 #KT-4878 Fixed
Minor refactorings in JetTypeMapper: renames, inlines, etc.
Remove code duplication in property accessor codegen
Minor, reformat in ImplementationBodyCodegen
Fix abstract nested class in enums in JVM back-end

It caused InstantiationError because the enum had an incorrect ACC_ABSTRACT
flag
Minor, ValueArgument.asElement returns JetElement
Simplify clinit codegen, delete code duplication

Logic for <clinit> generation was present both in PackagePartCodegen and in
ClassBodyCodegen, move it to MemberCodegen
Refactor property initialization codegen

Move a lot of the code from ImplementationBodyCodegen up to MemberCodegen, make
methods non-static (consequently get rid of a lot of parameters), reuse the
same code in PackagePartCodegen
Minor, simplify StackValue.ArrayElement
Optimize PropertyMetadataImpl instance creation

Create all property metadatas in <clinit> and save them to a static array
$propertyMetadata. Getter/setter of each delegated property will then just
obtain the corresponding instance from that array

 #KT-4232 Fixed
Simplify mapOwner/mapToCallableMethod
Simplify mapToCallableMethod
Refactor codegen hierarchy

- pull generate() and a bunch of abstract methods from ClassBodyCodegen up to
  MemberCodegen
- implement these methods in ScriptCodegen and PackagePartCodegen
- make MemberCodegen generic on the type of the element it is generating