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.
Mark ArrayOps, its Builder and its CanBuildFrom @inline.
wip