Issue/api syntax

Creates APIs for the syntax support:
- common code for the syntax highlighting preference pages
- API for the Scala tokenizer/partitioner
It would be good to describe this class. What is a partition tokenizer, as opposed to `ScalaCodeTokenizer`?