Use the textInput event to detect unhandled characters on Chrome & Safari

The textInput event provides a more accurate view of the resulting text from a key press on Chrome and Safari. Use this as the fallback if the key press event is ignored (e.g., user is inputing character code using the Mac OS option key or Windows alt key).

This vastly improves support for option keys and other input mechanisms on OS X

Testing status:
OS X
------
- [x] Chrome :+1:
- [x] Safari :+1: 
- [x] Firefox :+1: 

Windows
------------
- [ ] Chrome
- [ ] IE
- [ ] Firefox

Linux
------------
- [x] Chrome :+1: 
- [x] Firefox :+1: 
* During chained composition using the ctrl+shift+U method, the second entered character isn't shown until after the ctrl+shift+U is released
* The first delete/cursor move instruction with a keyboard after entering text using ctrl+shift+U doesn't appear to do anything

Android
------------
- [ ] Chrome
- [ ] Firefox
- [ ] Android

Other platforms?