Separation of tokenizing logic from ScalaCodeScanner

To test the tokenizing logic, it was required to separate it from
the scanner because the scanner has dependencies to UI classes
that are not available in a UI-less testing environment.

The test class introduced in this commit is needed because it
doesn't yet exist. It contains test cases for all previous versions
of the ScalaCodeScanner including the changes done in PR #255.
Add syntax highlighting for @ and # signs

Fix #1001445