Improve normalization of charCode, fix FF not reporting Enter

#1955

Haven't tested it yet (it's late), I'll run it through some manual tests tomorrow.
Maybe briefly mention that `charCode` returns the `keyCode` of printable characters (excluding Tab, including Enter).