Remove js.prim.* types, and everything related.

The type aliases `js.Boolean`, `js.Number`, `js.String` and `js.Undefined` have been removed. The documentation specifies that the Scala types should be used.

Operations available on JavaScript numbers and strings that do not have an equivalent in the Scala/Java library can be made available through imports of implicit pimps of `Int`/`Double` and `String`:

```scala
import js.JSNumberOps._
import js.JSStringOps._
```

Working with dynamically typed JavaScript-style code used to benefit from `js.prim.*` types for various things. To restore (and improve) that kind of code, a few chosen implicit conversions can be imported:

```scala
import js.DynamicImplicits._
```

This fixes #1384.
If they're omitted, then the `Long` is implicitly coerced to a `Double` by Scala anyway, and the overload with `Double` is called ... but without warning.

Can't use `@compileTimeOnly` because it was introduced in 2.11.

There are similar tricks in the Scala library, see for example https://github.com/scala/scala/blob/2.11.x/src/library/scala/math/package.scala#L96-L98