Merge branch 'refactor-syntax_unicode' into refactor-syntax_unicode_kupdown

Merge with lastest upstream
Add Unicode support to key up/down events

The key up/down events kup(...) and kdown(...) now take StringRefs.

KeySym functionality has also been enhanced - it now allows the encoding of Unicode codepoints in addition to the traditional ASCII and special keys.

A greater emphasis has been placed on whether an object cares about key presses or simply text. The "field" object is obviously interested in text but buttons (in the guise of pushbuttons, menus, etc) are really concerned with a particular keystroke being used as an accelerator or mnemonic. Therefore, field objects make use of the p_string parameter of the kup/kdown message while buttons instead use KeySym.

Theoretically, this allows any Unicode codepoint to be used as an accelerator or mnemonic for menus and buttons, respectively.
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown

Conflicts:
	engine/src/osxdcmac.cpp
	engine/src/osxspec.cpp
	engine/src/stack2.cpp
Add basic implementation of MCStringGetCodepointAtIndex

Does not yet support UTF-16 with surrogate pairs!
Add MCKeySymToLower

Converts a KeySym value to its lower-case equivalent.
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Change MCField::setupentry to use StringRefs
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown

Conflicts:
	engine/src/button.cpp
Fix for non-OSX platforms
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Merge branch 'refactor-syntax_unicode_button_menu' into refactor-syntax_unicode_kupdown
Merge branch 'refactor-syntax_unicode_kupdown' of https://github.com/runrevfraser/livecode into refactor-syntax_unicode_kupdown
Completely re-jig input on Windows to properly support Unicode input
Fix for building on non-Windows platforms
Tweaks to input handling for Windows
StringRef-based keyboard events for Linux
Add support for creating StringRefs from UTF-32