Markdown: Shift block boundaries as text changes

Fixes most (all?) ArgumentOutOfRange exceptions in MarkdownTagger

Use Artifacts from the ArtifactCollection
instead of static ITextRanges for block
boundaries, so they will be shifted
appropriately.

Fixes issue in #294