Cycle bullets when printing nested Markdown list (#55456)
It's nice to visually differentiate different levels of nesting (and
actually print more than one). Closes #18615.
With this markdown list as an example:
```md
- some list
- with nesting
- and items
- at many levels
- some text
- meaningless words
- even more words
- yet another item
- am I really still going?
- this is the end
```
It's currently printed like this:
```
• some list
• with nesting
• and items
• at many levels
• some text
• meaningless words
• even more words
• yet another item
• am I really still going?
• this is the end
```
with this PR, it's printed like this:
```
• some list
➤ with nesting
➤ and items
– at many levels
➤ some text
– meaningless words
➤ even more words
• yet another item
➤ am I really still going?
• this is the end
```
This PR:
- fixes the 1-limited nesting bug
- fixes a bonus bug with non-loose nested lists getting extra newlines,
and,
- introduces depth-dependent bullets
On my end, this seems to e working well, but it would be good if people
could try this out and check I haven't accidentally introduced any
edge-cases.