JS inline: added inline tests
JS inline: imported inline tests from JVM-backend
JS inline: added method traverse() to all nodes
JS inline: added JsGwtVisitor
JS inline: added JsGwtModVisitor
JS inline: removed legacy inline logic
JS inline: pass call expression to InlinedCallExpressionTranslator
JS backend: break label should be JsNameRef, not String

The reason is to make it easier to distinguish
between different break labels (that's valid on same level).
JsNameRefs can be distinguished by their JsName.
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