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().
As long as arrays are not backed by typed arrays, and when the type of the array is known statically, this is faster, because 1) it does not need to worry about copying forward or backward and 2) the type of the elements is monomorphic here and 3) it's inlined.

So I settled for writing it that way. But maybe this is not worth it, and `arraycopy` is best.