Refactor html syntax highlighting and implement profiling
Edit Book: 2x speedup for inline spell checking. Useful if you are editing large HTML files (over 100KB in size).

Qt's text layout engine becomes very slow if we store arbitrary python
objects in QTextCharFormat classes. So refactor to not do that.
...
A small speedup by using QTextCharFormat instead of SyntaxCharFormat when cloning formats
Another small speedup
Another small speedup
30% speed up on html syntax highlighting by using a C implementation for the Tag and State classes
...
...
...
Edit Book: Fix non-BMP unicode characters causing matching tag highlighting to be slightly off on linux