Intention for removing explicit type arguments at function calls
Empty parameter list should go before '->' in a lambda

Example:

  val x = { -> foo() }
Merge pull request #406 from wutalman/explicit_type_arguments

KT-4583 Intention for removing explicit type arguments at function calls
Move Refactoring: Do not replace references to local declaration with qualified names. Update and fix test data
#KT-4851 Fixed
Fix incorrect diagnostic message for CONFLICTING_OVERLOADS

- the member and the container were mixed up
- don't output "defined in" part of the message, because we tell later where
  it's already defined in
- fix an instability of the diagnostic order in OverloadResolver by using
  LinkedHashSet
Render FQ name of default package as "root package" in OverloadResolver
Don't print descriptors' toString() in diagnostic messages

Use DescriptorRenderer.TEXT instead, it doesn't print the debug information
Refactor OverrideResolver and OverridingUtil

Fix warnings, simplify code. Untangle a very complex code related to
diagnostics on multiple default values and different names of parameters in
supertypes; fix a bug there, add test
Move some utilities from OverridingUtil to OverrideResolver

OverridingUtil will be present at runtime and we should strive to minimize the
size of our runtime classes

Also add a comment to getOverriddenDescriptors()
Minor, provide a nicer API in OverrideResolver for plugin
Fix "Cannot infer visibility" for fake overrides

 #KT-4785 Fixed
Get rid of poorly named NotInferredVisibilitySink

Also make TraceBasedErrorReporter invoke OverrideResolver to report "cannot
infer visibility", because there's some additional logic there
Sort out renderers for diagnostics

- change NAMED to be Renderer<Named> and render Named's name. It was used in
  multiple places with arbitrary arguments, not only Named: change renderers in
  those places to TO_STRING
- add STRING, which is Renderer<String> and renders string itself. Change all
  places where strings were used with either TO_STRING or NAMED to STRING
- change NOT_AN_ANNOTATION_CLASS diagnostic to be reported on descriptor, not
  any string
Report "unused variable/parameter" warnings on VariableDescriptor

Return the old rendering strategy which renders descriptor's name
Add positioning strategy for diagnostics on illegal fake overrides

"funcitonTypes.kt" test data file was changed because now that there is a
positioning strategy, it takes the liberty of filtering out those diagnostics
that were reported on syntactically invalid elements