JsInline: use FunctionToBlockMutator at InlinedCallExpressionTranslator
JsInline: added JsName static ref for function
JsInline: added class InliningResult
JsInline: parameter lambda inline
JsInline: made break labels optional
JsInline: removed unused variable
JsInline: removed result expression initialization to undefined
JsInline: renamed inlining related classes
JsInline: extracted processing of assignment call to separate method
JsInline: added JsInliner (inlining entry point)
JsInline: inline after AST is translated
JsInline: added class FunctionCollector (collects inline functions)
JsInline: JsInliner recursively processes AST
JsInline: save block contexts to stack

Reason: need to be able to insert inlined body
before current statement (that might be
distant parent of node currently being
processed)
JsInline: added JsVar assignment inline
JsInline: use SmartList instead of SingletonList when `new JsBlock(statement)` called

Reason: it is ok to insert in a block after AST was created during translation.
For example, inliner can insert inlined body in such block.
Thus immutable SingletonList isn't appropriate.
added getCurrentNode() method to context
Removed nested inlining visitor
inline lambdas