JsInline: support inline extension functions
JsInline: check if expression need to be aliased
JsInline: 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
JsInline: prevent inliner from inlining multiple subexpressions at once
JsInline: inline local functions
JsBackend: dangerous issues temporary fix
JsBackend: 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.
JsInline: identitySet helper function
JsInline: common reference utilities for cleaning up after inline
JsInline: remove unused local function instances
JsInline: remove unused function literals and local functions