Better Markdown Syntax Highlighting

I made the Markdown regexes much more complicated; they now correctly handle nested blocks and a bunch of other corner cases.

This really ought to use a proper tokenizing parser, but I don't feel like writing one right now.

It does not handle multi-line fenced code blocks correctly, because `GetClassificationSpans()` is called with just one line at a time.  
It looks like fixing that is not simple; see [here](http://stackoverflow.com/a/3160517/34397).