Support nested lists.

Rather than indiscriminately trimming whitespace from key values,
measure the indent on the first line of text and use that as a baseline.

For example, notice that the first line of text after a summary: keyword is indented by
two tabs, and then if three-tab text is encountered, we know it's a nested list or
a code block.
Proper tab --> space conversion.

Instead of converting every tab to four spaces, just add spaces until you get to the next tabstop.
I really only want to do this on dojo comment blocks, but not sure how to intercept comment blocks
before esprima removes the // comment characters and whitespace preceding them.

Surprisingly though converting all code is fast: my build time when from 1m 8s --> 1m 11s,
basically the same.
Fix showing code blocks.

Do conversion of vertical-bar code blocks to standard markdown syntax before calling markdown processor, and handle code block indentation similarly to how nested lists are handled, so that unwanted indentation (plus of course the vertical bar) are removed, but indentation that is part of the actual code example is preserved.
treat return description as markdown
fix parsing of tags