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_button' into refactor-syntax_unicode_button_menu

Merging lastest upstream.
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.
Updates on MCNativeControl:: methods
Updates after feedback #1 on this branch
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu

Conflicts:
	engine/src/button.cpp
	engine/src/button.h
Merge branch 'refactor-syntax_unicode_squash0' into refactor-syntax_unicode_button_menu
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu
Updates on regex methods
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu

Conflicts:
	engine/src/button.cpp
Fix bugs in the menu handling code

The menus should now (hopefully!) function exactly as they did before, only now supporting Unicode.
Plumb in the kMCPropertyTypeName property type

The property getter/setter part of the engine had no idea how to deal with properties of this type, causing strange failures in the IDE (e.g. the right-click menu for buttons not appearing).
Minor cleanups
Remove MCU_copychar

This function is no longer needed in the brave new Unicode world.
Merge branch 'refactor-syntax_unicode_button' into refactor-syntax_unicode_button_menu
parsetextstyle/unparsetextatts/parsestyledtextappendblock/parsetextatts
Updates on MCF_* methods
reverted changes in submodules
Remove canconverttonative

This function no longer has any purpose or any callers.