Backport Fix #974: Implement java.util.UUID.

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

Backport: Move test: scala.scalajs.{testsuite => test}.javalib

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

These are required to implement Charset encoders and decoders.

Backport: Move tests: scala.scalajs.{testsuite => test}.niobuffer

(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:
- Move tests: scala.scalajs.{testsuite => test}.niocharset
- 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)