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().
We should `ceil` if we used something like `MaxCharsPerByte`. But here, it does not matter whether you're 1 more or 1 less, since it's an average anyway.