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().
Is it really a good idea to allocate all that memory *again*? I understand that calling `get` and `put` repeatedly will give raise to some overhead, but is it really worth copying the date again?