Improve identifier parser

This patch adds a script to generate the Unicode data needed for identifier parsing. It also greatly improves the identifier parser that is part of the lexer. Previously, things like U+200C and U+200D and symbols in the Unicode categories “Non-spacing mark (Mn)”, “Spacing combining mark (Mc)”, “Decimal digit number (Nd)”, or “Connector punctuation (Pc)” in `IdentifierPart` were not handled correctly. Now, they are.

(See http://mathiasbynens.be/notes/javascript-identifiers for more information.)