Issue/api syntax

Creates APIs for the syntax support:
- common code for the syntax highlighting preference pages
- API for the Scala tokenizer/partitioner
It is still used by the some part of the Play template plugin.
I started to make it an API (it is why there is this comment), but some cleanup work has to be done in the Play plugin first (remove the old editor, and some old code).