KT-3508 Use a relative path for Kotlin bundled libraries instead of absolute path

 #KT-3508 Fixed
Fix newlines in FunctionN generator

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

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

GenerateFunctions 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")

 #KT-1183 In Progress
Add new token COLONCOLON (::) for callable reference

 #KT-1183 In Progress
Parse simple callable reference expressions

 #KT-1183 In Progress
Refactor GenerateFunctions

Extract some methods && constants, inline some useless methods, replace
PrintStream with PrintWriter, make some methods non-static
Generate KFunction/KMemberFunction/KExtensionFunction

 #KT-1183 In Progress
Minor refactoring in CallExpressionResolver

Kill useless parameters
Add CheckValueArgumentsMode to call resolver

Now it's ENABLED everywhere. DISABLED will be used for resolving callable
reference expressions, since there won't be any arguments near the function
call to check

 #KT-1183 In Progress
Resolve callable reference expressions

 #KT-1183 In Progress
Disallow references to extensions in classes

It's not clear in which order should the two receiver arguments be passed to
them, and there's no corresponding K*FunctionN class for now

 #KT-1183 In Progress
LHS of callable reference can't be a type parameter
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