Prose edits plus add link to PHP Markdown Extras.
Redesign HTML parsing.

No need for the fussy distinction of block vs span elements.

That isn't relevant to parsing the HTML per se.

It's only relevant to the markdown context -- whether the markdown
parsing expects a block or inline element at that point.

- If it expects a block, consume any trailing blank lines to align the
  parser for the next block element.

- If it expects an inline element, definitely do not. Otherwise an
  inline at the end of paragraph would incorrectly cause that
  paragraph to be joined with the next thing (if posible). Ex:

            I am <span>foo</span>.

            Next paragraph.

Note that this also allows the redex tester to be restored to its
original simplicity. It can generate its entire $thml grammar (because
we no longer need a list of block vs. span elements). And it doesn't
need to care what elements are technically allowed to be void or not.

HOWEVER, I did need to make redex generate either <tag>...</tag> or
<tag /> for void elements. The case of <tag> alone can cause very slow
parses, since the parser needs read to EOF to determine it has no
matching close tag. This might be the one area it would help to retain
the list of void elements, and short-circuit for those. I'll leave
that for a future commit.
Add comment: current-strict-markdown? doesn't apply to HTML.
Check for void elements first.

In the case of legal void elements -- where <tag> is legal and <tag />
is not required -- this speeds parse by avoiding fruitless search for
a closing tag.
Decimal as well as hex entities.
atx headers separated by many blank lines. Fixes #32.
Reorgnize HTML parsing.

- Parse void elements first. Especially legal void elements without an
  explicitslash, like <br> instead of <br />. Avoids searching for
  close tag.

- Next $html-element handles both open/close pairs, and any remaining
  unmatched open tags.
Changes to emph and strong.

random-test.rkt was very slow since commit 42cbb412. I think it was
due to unnecessary runtime function creation.

But also, the correct parse that fixes #30 is not going to deal so
well with deliberately fake emph or strong. So I concluded that
random-test.rkt was being too "provocative", and dialed that back.
Just tweak indent on some tests.
Enhance check-md to use sexp-diff to show failures.
Enhance commit 58886f10: Substitute #:actual and #:expected keywords.