Update our Python-Markdown dependency to the 3.x versions.

Review Request #11281 — Created Nov. 14, 2020 and submitted — Latest diff uploaded

Review Board

This updates Review Board 4.0 to use Python-Markdown 3.1.1 on Python 2.7
(which is the last version to support Python 2.7) and >=3.3.3 on
Python 3.x.

Most of the heavy lifting was done by Djblets, but we did need to remove
an old extension from the default configuration (as the extension's
functionality has been made default).

This has a corresponding update to pymdown-extensions, which we use for
things like Emoji shortcode support. While the 8.x series is the latest,
the 6.2 release was the last to support Python-Markdown 3.1.x, so we
need that for Python 2.7 support. To keep version differences to a
minimum, we're also capping it for Python 3.x to the latest 6.x release
(currently 6.3).

We'll be able to bump these minimum versions for Review Board 5.

Unit tests pass on Python 2.7 and 3.6-3.9.

Manually tested various Markdown features, both from our own Markdown
extensions and pymdown-extensions. I didn't find any regressions.

There could be subtle issues with HTML e-mails, but we'll need to look
for these in production.