Reworked TextManipulator so it supports wrapping entire blocks of content in a prefix and suffix.

This allows the Code button not only wrap selected text, but also selected lines up in a code block. It even detects whether or not you've picked a language for the block if you want to un-toggle!

Also, we can now define patterns for prefixes and suffixes. Right now, they're in use to set sequential line numbers for Ordered Lists.

Finally, the Link and Image buttons can now detect whether they are selecting a complete URL or not. If they are, it will prepopulate the URL field instead of the Title/Alt Text field.

The Markdown definitions have been updated to use these new blocks.