Support unicode strings in serialization path

The serializer would crash whenever it encountered a unicode char.

- Convert V8's strings into UTF8 chars instead of trying to convert them to
  ASCII, and set the input stream encoding for the serializer to UTF8. This
  also avoids the issue of endianness for this direction.
- Skip an unnecessary ToString() right after checking IsString().
- Allow unescaped unicode in the yaml output. With escaping the output
  non-ASCII content is basically unreadable.