Encode strings with CESU-8

Related to #11.

We need to figure out in which cases (invalid data?) this will raise errors.
@aroben just curious why? Since you're using raw bytes, the original encoding of the literal string shouldn't matter, you're just tagging it as utf-8, no transcoding.