Compatibility with markdown test suites.

Motivation: Make it easier to compare output to that from a
third-party markdown test suite such as Gruber's or mdtest.

1. Verbatim code blocks parse to `(pre (code () ___))` instead of
   `(pre () ___)`.

2. Add `current-strict-markdown?` parameter. If true, non-standard
   extensions are not parsed:

   - Fenced code blocks.

   - Smart punctuation.

   - My optional language tag for inline code, e.g. `(+ 1 x)`[racket]

3. `parse-markdown` appends "\n\n" (previously just "\n") to the
   input. As a result the output will always be a block element such
   as `p`. For example `(parse-markdown "Foo")` is now `((p ()
   "Foo"))` whereas before it would be `("Foo").  Although the old way
   gave perfectly usable results, they're different from the reference
   outputs in test suites. (I was wondering why Pandoc appends "\n\n";
   now I get it.)

Note: This commit doesn't mean that we pass all the suites. It means
that there are fewer gratuitous differences in output -- fewer red
herrings obscuring real issues.
More use of `#:mode text`. See issue #27.
Merge remote branch 'upstream/master'