simple-markdown: some small compatibility fixups

Summary:
Makes `codeBlock`s gobble up trailing newlines,
Makes single item lists paragraphs if they have block-level elements
inside them (as designated by double newlines)

Test plan:
Added a code in lists test to `make test`

Auditors: emily
simple-markdown: allow multiple spaces after * in lists

Summary:
Especially relevant for tabs after the * in lists. This
is how marked.js works

Test plan:
`make test`

Auditors: emily
simple-markdown: fix extra newline after list items

Summary:
Strips the trailing '\n' seen in simple list items.
This makes cross-testing with marked.js a bit easier

Test plan:
`make test`

Auditors: emily
simple-markdown: don't let > escape from a paragraph

Summary:
Fixes a bug where inline `>`s would become a blockquote
even when they were in the middle of a paragraph

Test plan:
`make test`

Auditors: emily
simple-markdown: allow trailing whitespace after a code block

Summary:
fixes an incompatibility with marked.js where a trailing
indented line would prevent a code block from being
recognized as code (it would just become a paragraph).

Test plan:
`make test`

Auditors: emily
simple-markdown: don't allow defs inside paragraphs

Summary:
previously, using a [def]: like this inside a paragraph
would turn that part of the text into a def (thereby hiding it).
This should just be inline text in the paragraph since it's not
at the block level.

This change is a very, very hacky fix to that. The right
fix involves either parsing a group of defs at once, or
adding block vs inline parameters to the regexes in the
grammar, which we might have to do to comply with
"standard markdown" anyways.

Test plan:
`make test`

Auditors: emily