Backport Fix #1181: Support supplementary chars in RuntimeString.

Backport: Adapt calls to thiz.

(cherry picked from commit 63e8ed684eb92d68ceada09cb31a40b6c137fb20)

Conflicts:

	library/src/main/scala/scala/scalajs/runtime/RuntimeString.scala
Backport Fix #1236: Implement java.io.PrintWriter.

(cherry picked from commit 19d0243d43cd25a876be5babedda9a425abce1e8)
Backport Fix #974: Implement java.util.UUID.

Except UUID.nameUUIDFromBytes, because that relies on computing
an MD5 or SHA-1 hash.

(cherry picked from commit b1e239d2678214396f464509cae7e58c97385460)
Backport Implement part of java.nio.{Byte,Char}Buffer.

These are required to implement Charset encoders and decoders.

(cherry picked from commit 706d29a34ada59282cd11c7b179fe8b4ce7b598e)
Backport Implement the standard Charset encoders and decoders.

* US-ASCII
* ISO-8859-1
* UTF-8
* UTF-16 BE/LE/auto

This also fixes #1087: String.getBytes().

Backport: TODO checksizes

(cherry picked from commit 75bb352cb3e44d06981df33b003e414401f73016)

Conflicts:

	ci/checksizes.sh
	library/src/main/scala/scala/scalajs/runtime/RuntimeString.scala
Backport Fix #1263: Implement java.io.InputStreamReader using CharsetsDecoders.

(cherry picked from commit 9b39c9ce38604e45939d0ddd7851ba064ab24e9e)