Refactor CompileKotlinAgainstKotlinTest

CKAKTest is now abstract, the actual testcases are generated via GenerateTests
into CompileKotlinAgainstKotlinTestGenerated.

Also invokeMain() now invokes namespace.main instead of bbb.namespace.main.
Fix codegen of loaded class objects

Remove useless check and todo.

 #KT-2717 Fixed
 #KT-3142 Fixed
Check for ClassKind in getClassifier() and getObjectDescriptor() implementations in java scopes

 # KT-3124 fixed
Fix for a problem where inner (or nested) classes were not analyzed in some situations

 # KT-3124 Fixed
Fix last if-statement in block codegen

 #KT-3203 Fixed
no senseless comparison for error type
supertype of error type should be an error type, not any
EA-36903 - ISE: JavaTypeTransformer$.visitClassType Fixed
Utility methods moved to a utility class
Unneeded lock & on-demand initialization removed
Renamed Matcher -> NavigationStrategy. Extracted anonymous classes.
Renamed Matcher -> NavigationStrategy.

Extracted anonymous classes. Renamed methods.
receiverType parameter.
Removed constructor parenthesis for named objects and enum entries.
Supported navigation to decompiled named object and its members.
Supported navigation to source of named object and its members.
Simplified JetClsNavigationPolicy.
Got rid of code duplication.
Replaced some ifs with asserts.
Minor. Renamed variable.