Not all Unicode codepoints have an equivalent named Keysym. But there is a range in the Keysym namespace that can be used to map any codepoint to.
Moves detection to Util and fixes so that touch is properly detected on MS Surface and touch emulation in Chrome.
This commit moves all the input-related files from `core/` to `core/input/`, and renames a couple as relevant (input.js --> input/devices.js, keyboard.js --> input/util.js).