Implement Float.parseFloat in terms of Double.parseDouble.

Instead of the other way around. According to our spec, going
through a Float could discard the Double precision.
Fix a few typos in scala.scalajs.js package object docs
Merge pull request #1193 from phaller/js-package-docs

Fix a few typos in scala.scalajs.js package object docs
Fix #1195: Do not export synthetic methods
Fix #1191: Reset caseaccessor flag on export forwarders
Merge pull request #1197 from gzm0/no-synth-export

Fix #1195: Do not export synthetic methods
Merge pull request #1196 from gzm0/fix-export-fwd-flag

Fix #1191: Reset caseaccessor flag on export forwarders
Improve feedback in case of UndefinedBehaviorError.
Merge pull request #1199 from sjrd/improve-undef-behavior-feedback

Improve feedback in case of UndefinedBehaviorError.
Fix #1171: Split: Sometimes remove leading empty match

The conditions were determined experimentally since the JavaDoc is
note precise enough.
Introduce Floats in the IR.

This does not change what is emitted in fine. It is simply
a different spec of the IR in which Floats are separated from
Doubles.
Fix #1135: fast Floats + on-demand compliance for Floats.

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

Additionally, with a semantics config:
  set scalaJSSemantics ~= { _.withStrictFloats(true) }
the linker will produce strict floats, which always behave as 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 that is available, or a slow one that does not
require anything fancy.
Merge pull request #1198 from gzm0/fix-regex

Fix #1171: Split: Sometimes remove leading empty match
Merge pull request #1194 from sjrd/floats

Fix #1135: fast Floats + on-demand compliance for Floats.
Fix #1175: Tighten the definition of Closure nodes.

Capture parameters are separated from normal parameters,
since they play very different roles, and have different
requirements.

Captures can have any type, but must always be immutable.

Parameters must always be of type AnyType, but can be mutable.

Additionally, thisType and resultType disappear, and are now
always implicitly AnyType.
Set `this` to `undefined` when inlining a JSFunctionApply.

This is the semantics of strict mode.
Fix #364 for good: remove magical Rhino top-level package objects.

Instead of hard-coding a list of known problematic top-level
package names, we detect what needs to be removed by listing
the properties in the Packages object.
Merge pull request #1200 from sjrd/tighten-closure-nodes

Fix #1175: Tighten the definition of Closure nodes.
Merge pull request #1202 from sjrd/fix-tlds-in-rhino

Fix #364 for good: remove magical Rhino top-level package objects.
Add replace and deleteCharAt methods to StringBuilder and StringBuffer