Updates on MCParagraph methods, MCSystemCompareInternational() and MCField::typetext() methods
The X_init/X_open process on OSX now supports Unicode

The UTF-8 argv/envp strings are now converted to StringRefs and processed in that form.

Windows and Linux have not been updated, however.
Add StringRef X_init support for Win32

Requires testing!
Add StringRef X_init support for Linux

Requires testing!
Update calls to setlocale()

Calls to the C library's setlocale function have been changed to more appropriate values. Previously, they were setting the LC_CTYPE and LC_COLLATE to the default system locales (as specified, e.g, through the $LANG or $LC_ALL environment variables) when what they really wanted to do was set them to the US English settings with the native encoding (Codepage 1252 for Windows, ISO-8859-1 for Linux and MacRoman for OSX). The other locale settings are set to the system default (this includes C library error messages, numerical formatting and time/dat formatting).
Win32 elevated slaves now pass argv/envp as UTF-16

Passing the string arrays in this format allows Unicode strings to be passed along to the elevated process.
Add MCStringCreateWithSysString and MCStringConvertToSysString

These functions are used on Linux to convert between ISO-8859-1 or UTF-16 encoded StringRefs used by LiveCode and whatever string encoding the Linux system expects (probably UTF-8 or ISO-8859-1 but it could be anything). Windows doesn't need this as its *W() functions always take UTF-16 and on OSX the BSD components should always use UTF-8.

Currently, these functions are only used for ARGV/ENVP strings but ideally should be used whenever a string is passed to a system interface (file APIs, for example).

String handling when spawning elevated processes is not yet correct - it currently assumes that the system encoding is UTF-8 when passing argument strings. This affects both the exec of gksu and the creation of the final elevated process.
Process launching on OSX now encodes arguments in UTF-8
The ObjectStream classes now read and write strings as StringRefs

Be warned: this has changed the stack loading/saving code. Although it has been tested for both loading and saving, care should be taken.
Updates after Seb's feedback
Fix the pointer stuff in MCField::typetext
Merge branch 'refactor-syntax_unicode_findstack' into refactor-syntax_unicode_message_with_args

Conflicts:
	engine/src/dispatch.cpp
Merge remote-tracking branch 'panos/refactor-syntax_unicode_paragraph' into refactor-syntax_unicode_message_with_args

Conflicts:
	engine/src/field.h
	engine/src/fieldf.cpp
Merge branch 'refactor-syntax_unicode_panos_typetext' into refactor-syntax_unicode_message_with_args

Conflicts:
	engine/src/fieldf.cpp
Remove MCObject::message_with_args methods taking MCStrings

All calls have been replaced with equivalents using message_with_valueref_args.
Replace an assert with MCAssert
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_xinit

Conflicts:
	engine/src/dskw32.cpp
	engine/src/lnxelevate.cpp
	engine/src/lnxspec.cpp
	engine/src/w32spec.cpp
Merge branch 'refactor-syntax_unicode_xinit2' into refactor-syntax_unicode_xinit3

Conflicts:
	engine/src/dskw32.cpp
	engine/src/lnxelevate.cpp
	engine/src/lnxspec.cpp
	engine/src/w32spec.cpp
Merge branch 'refactor-syntax_unicode_xinit3' into refactor-syntax_unicode_xinit
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_xinit