Pulled the command-line processing code into a separate class that can be used in the DLL version to set the CodeSettings object. Not all command-line options are supported by the DLL, however. Any switches having to do with file input/output (-out, -res, etc) is handled only by the EXE to preserve security sandboxing.
Treat the UNICODE Byte-Order Mark (BOM) as whitespace, as per spec. Also, the ZWNJ and ZWJ characters should be allowed as identifier parts.
Couple bug fixes.