New highlighter algorithm using QTextLayout that fixes rendering of RTL strings.

**Before** `incorrect rendering`
![highlighter-before2](https://cloud.githubusercontent.com/assets/1328454/3124303/66ff3594-e77b-11e3-8218-85d7148e9d14.png)

**after** `correct rendering`
![highlighter-after](https://cloud.githubusercontent.com/assets/1328454/3124308/804ed73e-e77b-11e3-8fc6-2c7ec03f1e60.png)
Also you can see that I used a lighter color for un-matched parts of a string that has matched parts.