Fix #1135: fast Floats + on-demand compliance for Floats.

Floats now use the built-in Math.fround for its operations if the
built-in exist (in which case we hope the VM will optimize it).

Additionally, with a semantics config:
  set scalaJSSemantics ~= { _.withStrictFloats(true) }
we can ask the linker to produce strict floats, which always
behave like on the JVM (32-bit precision). On VMs that do not
support Math.fround, we use one of two polyfills: either one
based on Float32Array if it is available, or a slow one that does
not require anything fancy.