JS Inline: added CloningVisitor
JS Inline: added InlineableResult
JS Inline: added FunctionInlineMutator
JS Inline: added JsInliner
JS Inline: save static ref to JsFunction in JsName
JS Inline: collect defined functions
JS Inline: 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)
JS Inline: save inline status during translation
JS Inline: inline function calls
JS Inline: run JsInliner after AST is built
JS Backend: made JsInvocation arguments modifieable
JS Backend: made JsBlock statements list modifieable
JS Backend: made JsNameRef name modifieable
JS Backend: made JsScope hasOwnName method public
JS Inline: added invocation utils
JS Inline: added inlining context utilities
JS Inline: create JsInliningContext per function processed by JsInliner
JS inline: alias arguments and local variables
JS Inline: replace returns with result variable assignment and break
JS Inline: support inline extension functions