Don't match inline spans that contain a blank line

Inline styles, such as emphasis, code, and links, cannot contain an
empty line. Change the definitions so they won't ever try to match
across an empty line, and in fact won't even start the match unless
there's a valid end.
Consider lines with just blockquote start to be blank

When detecting whether an inline span applies, consider a line that only
contains a blockquote start indicator to be blank.
Allow newline after [link text] block

A newline (followed by any number of spaces) is always allowed between a
[link text] and a [link destination] block, even in the original
Markdown. Various implementations allow it between [link text] and
(inline url) blocks as well.
Treat fenced code blocks like other block-level elements

Add fenced code blocks to @markdownBlock, so they can start inside a
blockquote.
Don't require a space after a blockquote start (>)

Even the original Markdown doesn't require the space here.
Better fenced code block matching

Fenced code blocks can use either ``` or ~~~ as a delimiter, and can
include more than 3 backticks/tildes in a row if they want (~~~~). It
also appears that the start and end markers don't have to match.

This was verified in both the redcloth Markdown implementation and
GitHub-Flavored Markdown.