Add support for numbers and operators to classifier.
Created a new DartTagger for use by classifier and other extensions.

Previously the logic was all in DartClassifier, but by separating the
tokenising (tagging) from the classifier, we can have better fidelity
for tags, and the Classifier can then just classify the subset of tokens
we care about highlighting.

Currently this tagger just does the same tagging as Classifier did; but
it can/will be extended to support more in the future (eg. tagging
blocks to allow outlining).
Replaced classifier with a tag-based one.

This removes the knowledge about the language from the classifier,
keeping it in a central Tagger, for use by many different components.