Inner class generation now performed on visiting appropriate declaration
KT-3389: Local class construction results in CompilationException && KT-2873 && KT-3210

KT-2873: VerifyError on instantiating a local class inside a closure
KT-3210 Inline Class: CompilationException: Back-end (JVM) Internal error: wrong code generated java.lang.ArrayIndexOutOfBoundsException null

 #KT-3389 Fixed
KT-3538: Super call to trait implemetation invokes method from base class
 #KT-3533 Fixed - not to null in encoding name parameter in String, Bytes, and File.
Use default param to String encoding name instead of using extra overloaded method.
Added @NotNull annotation for Charset.defaultCharset().

Other code cleanup.