Issue/api syntax

Creates APIs for the syntax support:
- common code for the syntax highlighting preference pages
- API for the Scala tokenizer/partitioner
Yeah, a pointer to tell user to pay attention to the return type w.r.t `ScalaCodeTokenizer`  would be useful.