Add Unicode support to MCGraphic

MCGraphic now uses an MCStringRef to store its label. Wrapper functions MCFontMeasureText and MCFontDrawText were added - these take an MCStringRef rather than a {const char * p_text, size_t p_text_length, bool is_unicode) triple. The wrappers will need modification when MCScreenDC can take an MCStringRef in its corresponding methods.
Further cleanup of MCGraphic

The getters/setters for the label property of MCGraphic have been cleaned up. The {Get,GetEffective,Set}UnicodeLabel functions now work with MCDataRef binary strings instead of MCStringRef. Do{Get,Set}Label have been removed.

The MCFont{Measure,Draw} wrappers have been fixed to work properly with StringRefs in both native and UTF-16 encodings.

All label manipulation functions now reject nil StringRefs - the no-label case is represented by setting the label to kMCEmptyString instead of nil.

MCGraphic::getlabeltext() now has get semantics, returning the label without a refcount bump.

An overload of IO_write_stringref has been added with a parameter explicitly requesting the encoding to use when writing out the string, regardless of the underlying encoding used by the given StringRef. A corresponding IO_read_stringref has also been added.
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_graphic

Requires updated libfoundation/foundation.h header from upstream in order to clean up some StringRef/DataRef conversion code.
Simplify the new IO_{read,write}stringref functions

The implementation of these methods is much simpler, making use of the MCStringEncode and MCStringCreateWithBytesAndRelease functions.
Simplify MCGraphic::{Get,Set}UnicodeLabel

These methods now use the new MCString{Encode,Decode}{,AndRelease} functions, making their implementations much simpler.
Simplify MCGraphic::SetLabel

SetLabel was more complicated that necessary; the input parameter can never be nil.
Merge pull request #153 from runrevfraser/refactor-syntax_unicode_field_clean

Refactor syntax unicode field clean
Further cleanup

Cleaning up some minor bits and pieces that got missed previously.
Merge pull request #150 from runrevfraser/refactor-syntax_unicode_graphic

Refactor syntax unicode graphic
Merge pull request #155 from runrevfraser/refactor-syntax_unicode_field_clean

Rename MCField::settext to settext_oldstring
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_button
Add MCFontDrawTextSubstring

New function for drawing a substring of a StringRef, in analogy with MCFontMeasureTextSubstring.