Use Scala primitive types instead of JS types by default.

With the removal of boxing introduced in the preceding commits,
the runtime representation of all JavaScript primitive types has
a direct corresponding Scala type.

Hence, Scala types such as Int or Double can now be used where
previously a js.Number was required to ensure no boxing would
occur.

Sometimes, the actual JavaScript types are still useful, either
to access their methods, or because they can hold the undefined
value as an additional possible value. But most of the time they
should not be needed.

This commit hides away primitive JavaScript types under
scala.scalajs.prim._, and replaces all occurrences of primitive
JS types by their Scala equivalent (or more precise, such as Int)
where applicable. Only a few places still use the real JS types.