Colorizer optimization

*Please, review and test this carefully.*

The idea is that we don't create `SnapshotSpans` and `ClassificationSpan`s for all symbols. We save `(Category * location) []` instead, then create `ClassificationSpan`s right in `SyntaxConstructClassifier.GetClassificationSpans`. It's much, much more efficient.