Creates a generic preference page for syntax colouring

With some initial reorganization of code.
Cleans up ScalaSyntaxClass
Creates an API for the syntax parsing support