Markdown: Shift block boundaries as text changes

Use Artifacts from the ArtifactCollection
instead of static ITextRanges for block
boundaries, so they will be shifted
appropriately.

This is also why HTML code block
highlighting is inconsistent; since
the CodeLineArtifacts aren't in the
collection, they don't get expanded.

Fixes issue in #294