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.
JsInline: new module
JsInline: added CallCounter
JsInline: added AstSearchUtil
JsInline: removed legacy inline tests
JsInline: added inline tests
JsInline: added method traverse() to all nodes
JsInline: added JsGwtVisitor
JsInline: added JsGwtModVisitor
JsInline: removed legacy inline logic
JsInline: pass call expression to InlinedCallExpressionTranslator
JsInline: added CloningVisitor
JsInline: added InlineableResult
JsInline: added FunctionInlineMutator
JsInline: added JsInliner
JsInline: save static ref to JsFunction in JsName
JsInline: collect defined functions
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: save inline status during translation
JsInline: inline function calls