Add support for Unicode characters larger than UTF-16

Finalizes porting functionality of SendKeysCTypes. This adds support for
extended characters, larger than UTF-16. This includes emoji.

There is now no piece of functionality lost by moving to this script from
SendKeysCTypes, and there are several benefits as mentioned previously.