Rewrite JavaScript syntax highlighting

* Fixes bug that made division get marked up as regexp
* Highlights assignment to differentiate it from equality checks
* Adds a bunch of new highlighting categories
* More syntax errors will be marked as bad (multi-line strings, multiple identifiers in a row, etc)
* Single and double quotes correctly treated the same
* Fixes bug that made division get marked up as regexp
* Highlights assignment to differentiate it from equality checks
* Adds a bunch of new highlighting categories
* More syntax errors will be marked as bad (multi-line strings, multiple identifiers in a row, etc)
* Single and double quotes correctly treated the same