Remove js.Array.concat(items: A*), because it is unsound.

If one of the elements in `items` happens to be a JS array,
then this overload of concat will not behave as its type suggests.
Improve some type definitions in js.Array.
Add Cast() case in OptimizerCore.pretransformExpr().

This is necessary for a Cast(expr) not to force expr if the
result of the Cast is not used.
Fix js.ArrayOps.repr.

Its default implementation is to return
  this.asInstanceOf[Repr]
but we have to override it to return `array`.
Merge pull request #1106 from l15k4/master

Add insert methods to java.lang.StringBuilder
Fix #1084: Optimize js.Array and js.ArrayOps.

First, methods of js.Array that have the same name as methods
in the Scala collection library have been renamed or moved
to a separate, discouraged implicit pimp js.JSArrayOps.

Second, js.ArrayOps, its builder and CanBuildFrom have been
made extensively inlineable.

Finally, faster versions of some methods are included.

This achieves two things:
* Usage of js.Array can be done just like any other collection,
  without surprise of different behaviors.
* Methods of js.Array (particularly higher-order ones) can be
  optimized much more aggressively.
Merge pull request #1108 from sjrd/opt-js-array-ops

Optimize js.Array and js.ArrayOps.
Fix #130: Force facade method bodies to be "js.native"
Merge pull request #1109 from gzm0/specific-js-any-body

Fix #130: Force facade method bodies to be "js.native" or empty
Fix #1110: Correct toMatch(re: RegExp) in Jasmine typing
Merge pull request #1117 from gzm0/fix-jasmine-typings

Fix #1110: Correct toMatch(re: RegExp) in Jasmine typing
Fix #1107: Warn if raw JS method has return type Nothing
Remove one non-standard overload of js.Array.splice().
Add a setter for js.Array.length.
Merge pull request #1116 from gzm0/warn-nothing

Fix #1107: Warn if raw JS method has return type Nothing
Fix #1114: Verify contents of interop annotations
Cleanup annotation classes
Merge pull request #1118 from gzm0/error-check-annots

Error check annots
Make js.ArrayOps and js.WrappedArray be their own Builders.

This is ok because the result() method of Builder clearly says
that the builder's state is completely undefined after its
invocation.

For reference, scm.ArrayBuffer is also its own Builder.
Fix #1115: Enrich js.WrappedArray with Buffer and BufferLike.

This basically turns it into a full-blown Scala collection,
whose implementation happens to use a js.Array.

We also mark it @inline, because it gives the BufferLike
interface to js.Array, which js.ArrayOps cannot provide due to
the type parameters of BufferLike being too restrictive.