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().
Not necessary. The point here is to make sure that the underlying coder implementation does not accidentally run out of buffer space, which is a malfunction. These exceptions will be triggered by the underlying Buffers, not the coders explicitly. CharacterCodingExceptions, on the other hand, will not be thrown unless the coder specifically throws it, which is not going to be an accident, it would be "malicious" code.