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
JS inline: check if expression need to be aliased
JS inline: default parameter processing for inlined functions

When function is inlined initializers
for default parameters can be:
1. removed  if argument is not `void 0`
2. expanded otherwise
JS inline: prevent inliner from inlining multiple subexpressions at once
JS inline: inline local functions
JS backend: save local and literal functions 'local' status in AST

Reason: to distinguish local functions,
when cleaning up after inline.

Unreferenced local functions can be removed.
JS inline: identitySet helper function
JS inline: common reference utilities for cleaning up after inline
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
Code Review: InlineableResult annotations
Code Review: InlinedCallExpressionTranslator

1. removed unused constructor
2. removed unused parameters
3. inlined private shouldBeInlined implementations