JS backend:  using native implementations in kotlin_lib.js for String.startsWith,  String.endsWith and String.contains.
JS backend: fixed return type for Window.setInterval -- should be Long instead Double?
JS backend:  don't use the temporary variables in SafeCall and SureCall when is not necessary.

For example:
val a : A? = null
a!!
a?.foo()

translated before:
var a = null;
var tmp$0, tmp$1;
(tmp$0 = a) != null ? tmp$0 : Kotlin.throwNPE();
(tmp$1 = a) != null ? tmp$1.foo() : null;

translated after:
var a = null;
a != null ? a : Kotlin.throwNPE();
a != null ? a.foo() : null;
JS backend: partial fix for #KT-2670 -- throw NPE when unsafe cast null value to not nullable type.
JS basckend: removed useless artifact item `kotlin-js-libraries.zip`.
We use `kotlin-jslib.jar` from ant build target `jslib`.

(cherry picked from commit 645e596)
JS backend: switched to use native Function.bind(from ES5) instead library function b0-b4.
Removed unnecessary functions from jslib.

(cherry picked from commit f6550e9)
JS backend: cleanup, use BindingContextUtils.getNotNull instead BindingContextUtils.get + assert

(cherry picked from commit 111805f)
JS backend: fixed the variable capturing in deeply nested functions.

(cherry picked from commit cee29a6)
JS backend: fixed the variable capturing  in deeply nested functions which mixed with the object declaration.

(cherry picked from commit 41cb0ab)
JS backend: simplify and rename tests for closure in nested functions.
JS backend: fixed the division operation for integral types.

#KT-2342 fixed