Fix newlines in FunctionN generator

Use println() instead of print('\n')
Refactor GenerateTuplesAndFunctions

Introduce FunctionKind enum to store differences between functions and
extension functions (and possible future function-like classes)

Also remove some useless checks
Regenerate FunctionN and ExtensionFunctionN classes

GenerateTuplesAndFunctions now also generates Java classes in runtime/src/jet/
directory, and they have the matching declarations to those in
compiler/src/jet/

Delete ExtensionFunctionN's protected constructor, as it wasn't needed

Delete toString(), a more useful version will be implemented soon
Make FunctionN interfaces

FunctionN and ExtensionFunctionN are now interfaces, with the corresponding
implementations in FunctionImplN and ExtensionFunctionImplN

Update test data
Use FunctionImplN instead of FunctionN in codegen

Superclass of closures should now be FunctionImplN instead of FunctionN. Since
these -Impl classes are needed only in JVM, the corresponding descriptors and
types are created in the back-end only.
Write generic signature for closure FunctionN superclass

ClosureCodegen.appendType() now appends any Type as a type parameter correctly
toString() for FunctionN classes

It's implemented as if the types were reified: getting the real type parameters
of the corresponding FunctionN class
Delete unused method

It was only used in parsing tuples, which are dropped
Introduce JetCallableReferenceExpression

Reuse the obsolete hash qualified expression as a newly born callable reference
expression: Foo::bar. It's not a qualified expression anymore, since the
receiver part is now a JetTypeReference and it also can be empty ("::bar")
Add new token COLONCOLON (::) for callable reference
Parse simple callable reference expressions

 #KT-1183 In Progress
Refactor GenerateFunctions

Extract some methods && constants, inline some useless methods, replace
PrintStream with PrintWriter
Refactor GenerateFunctions

Make methods non-static
Generate KFunction/KMemberFunction/KExtensionFunction
Minor refactoring in CallExpressionResolver

Kill useless parameters
Resolve callable reference expressions

 #KT-1183 In Progress
Refactor ClosureCodegen

Extract some methods, replace types with more generic (ExpressionCodegen ->
LocalLookup), make more stuff fields instead of parameters passed to every
method, annotate with Nullable/NotNull
Minor refactoring in CodegenBinding

- CLASS_FOR_FUNCTION slice was used for two purposes: to record closure classes
  for functions and for scripts. Separate this slice into two slices:
  CLASS_FOR_FUNCTION and CLASS_FOR_SCRIPT
- add classNameForAnonymousClass() overloaded method to CodegenBinding, taking
  a function descriptor (not a PSI element)
1