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.
Specialize genTraversableOnce2jsArray for js.ArrayOps and js.WrappedArray.

In a sense, this is as if .toJSArray were overridden in js.ArrayOps
and js.WrappedArray, which makes total sense. But since .toJSArray
is a pimp, we need to make this specialization directly in its
implementation.