Add support for BinaryString object properties

The MCPropertyObjectThunk{Get,Set}BinaryString macros have been added, allowing BinaryString properties (using an MCDataRef type) to be defined using the DEFINE_*_PROPERTY macros.
Add StringRef versions of MCFont{Measure,Draw}Text

The existing versions of these functions only operate on char pointers and a StringRef variant is required.
Convert MCButton::acceltext to a StringRef

The "accelerator text" field of the button object has been changed to use a StringRef for storage. It now supports Unicode transparently.
Merge branch 'refactor-syntax_unicode_field_clean' into refactor-syntax_unicode_button

The new MCField::settext variant taking a StringRef is required.
Initial attempt at replacing MCButton::label with a stringref

This commit is extensive, nasty and still needs a lot of work. For one thing, drawing of underlines for button mnemonic keys is disabled for now. This will all get fixed soon (hopefully...).
Add MCFontMeasureTextSubstring

This function allows a substring (specified by an MCRange) of an MCStringRef to be measured when rendered in a particular font.
Fix mnemonic letter underlining for buttons

Underlining for mnemonic letters for buttons has been re-enabled.
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.
Change parameter order for MCFontMeasureTextSubstring

Moved the p_range parameter after p_text for more consistency with similar functions.
Change parameter order for MCFontDrawTextSubstring

Moved the p_range parameter after p_text for more consistency with similar functions.
Refactor menu handling to use Unicode

Most of the menu handling code now works with StringRefs and is properly Unicode aware.

Of the affected platform-specific code, only OSX has been updated.
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_button

Merging lastest upstream.
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu

Merging lastest upstream.
Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_button

Merge with latest upstream
Fix problem using MCArrayFetchValueAtIndex

MCValueRelease should not be called on fetched values. Indexing is 1-based, not zero.
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu
Fix problems with using MCArrayFetchValueAtIndex

Fetched items should not be released. The array indexing starts at 1.
Remove switchunicodeofstring

This function was no longer in use.
Removed field seltext from MCButton

The field was not referenced anywhere in the code.