Specify brace characters, so editor can automatically insert them.
Fix Visual Studio off-by-one line number issues.

Why I don't even...?!
Analyse Dart files on first show, don't wait for first save.
Handler overlapping classifications better.

The previous version would ensure no overlapping classifications by
first-one-wins; but this was based on first-regex, not first-character
position.

I first thought I could just "keep the earliest span" when there was an
intersection in the original loop, but if the one we kept then turned
out to be superseded itself, the results would still be wrong.

Performance of this will suck even more than it did; but the results
should be significantly more accurate; and hopefully we'll one day have
a tokeniser that processes the source file in order, which should
eliminate all of this dancing.