JS inline: remove unused local function instances
JS inline: remove unused function literals and local functions
JS inline: use dfs processing order, as it is independent of declaration order
JS inline: inline simple-return functions directly
JS inline: use inlined function name for inline labels
JS backend test: turn rhino optimization off for stdlib tests
JS backend: added the ability to turn off the inline optimization.
JS backend: added NotNull annotation
JS backend: added @NotNull annotation
JS backend: removed JsBlock toString() truncation

Truncation complicates debugging.
Some inline tests depend on functions strings  comparison.
Code Review: InlinedCallExpressionTranslator

1. removed unused constructor
2. removed unused parameters
3. inlined private shouldBeInlined implementations
Code Review: moved NameCollector to util package
Code Review: FunctionInlineMutator

1. use renaming context in doReplaceReturn
2. rename doReplaceReturn -> doReplaceReturns
3. added Unit-return TODO
Code Review: Renaming.kt

1. formatting
2. removed AliasStrategy
3. use sublist instead of drop
Code Review: RenamingContext

removed unnecessary getFreshName overload
Code Review: collectionUtils.kt
1. upper-cased identitySet function to be class-like
2. modified identitySet(initial) to be extension function toIdentitySet
Code Review: renamed collectReferences function so, that it's clear that references are collected inside parameter
Code Review: use [] for Map's get/put
Code Review: replaced runtime exception with assertion
Code Review: use JsInliner.getFunctionContext