Give tokens a value when possible

When a token can only have one value, store that value along with the
token. This is useful for unparsing kotlin.
Add an intention to simplify negated binary expressions

Given an expression of the form `!(a op b)`, replace it with `a !op b`.

For example:

    !(a < b)    -> a >= b
    !(a is Int) -> a !is int
KT-4683 KotlinNullPointerException at remove braces intention

 #KT-4683 fixed
 EA-54686 fixed
 EA-54687 fixed
Refactor CompileKotlinAgainstCustomBinariesTest

Make all filenames start with lowercase letter (instead of half lower / half
upper)
Minor, package "test" in compileJavaAgainstKotlin testData
Minor, fix typo in diagnostic message
Fix annoying parameter name override warning

Some corner cases still remain: KotlinSignature, propagation, deserialized
delegates to Java interfaces

 #KT-1239 Obsolete
 #KT-1924 In Progress
 #KT-2081 Fixed
Support hasStableParameterNames in KotlinSignature and propagation

 #KT-1924 In Progress
 #KT-2830 Fixed
Disallow named arguments for Java methods

Since they don't have stable names: they're (sometimes) loaded from the
bytecode, which (sometimes) doesn't contain parameter names
Remove duplicates from implicit receiver hierarchy while building tasks
Rename

receiverForVariableAsFunctionSecondCall -> explicitExtensionReceiver
receiverFromVariable -> calleeExpressionAsThisObject
Refactoring: do not store reference expression in resolution task

Sometimes there is no reference for the call (like '{ ... } ()').
A fake reference can be created, but the case when an error is reported on it can't be easily supported.

There were two usages of this reference: tracing and receiver for invoke.
Tracing strategy is created beforehand. Receiver for invoke uses the callee expression (from variable call), not the reference.
Report resolve call errors on JetExpression, not on JetReferenceExpression
Refactoring: extracted isInvokeCallOnVariable
Resolve invoke on any kind of expressions, not only on simple name expressions
Added 'call' reference to ResolvedCall
Supported invoke on expressions on js backend
Refactoring: made explicitExtensionReceiverForInvoke final
Added CallableDescriptorCollectors
to use it instead List<CallableDescriptorCollector>
Improved error reporting for invoke on expression