Review overloads and default parameters and std library.

Sometimes, overloads that could have been written as default
parameters syntactically were not, because the underlying behavior
cannot be modeled with any default value. At a few places ??? was
used (typically for function types) because the default value would
be too cumbersome to write, but it exists.

Also, ThisFunctions have been used where appropriate.
Move scala.scalajs.js.runtime.AnonFunctions to scala.scalajs.runtime.

So that they can play with their siblings Long, RuntimeString and
StackTrace.
Merge pull request #339 from sjrd/review-library

Review library