Add functions for marshalling wchar_t (which is fixed 32-bit UTF32LE on Unix) strings to and from JS, and add a test.
Skip test_utf32 when on s_0_x since they don't link in libc, and the code relies on wcslen().
Rename utf32<->jsstring marshalling functions to UTF32ToString and stringToUTF32 following azakai's suggestion on naming convention.
Fix UTF32 <-> JS string conversion for non-BMP characters. Turns out JS string functions .length, .charCodeAt and .fromCharCode do not operate on Unicode code points, but UTF-16-encoded Unicode code units.
Update utf32 test to contain non-BMP characters in the test string.
Fix UTF-16 surrogate detection.
Add support for marshalling UTF-16 strings to/from JS. Allows passing wchar_t strings to JS when building with -fshort-wchar. Closes #1565.