Unicode output on Windows is now converted from UTF-16 to UTF-8.

This fixes the problem seen in issue #182.

After digging through the fstream code, the output stops because a call to wcrtomb fails deep within one of the system headers. The wcrtomb code succeeds for regular characters, but fails for foreign characters (I believe this is locale dependent, so the exact conditions under which it succeeds/fails will depend on your system).

By switching to codecvt_utf8_utf16, the call to wcrtomb is avoided entirely, and the output will succeed, provided the string can be converted from UTF-16 to UTF-8.