This patch uses mdformat to auto-format markdown documentation.
To support \ for line breaks (which is what mdformat uses), mkdocs now
requires the pymdownx.escapeall extension.
Because of incompatibilities between mdformat (which formats to
CommonMark) and mkdocs (which expects Python-Markdown), there are now
some limitations: no nested lists, multi-paragraph list items, or
admonitions support.
These limitations are acceptable for now, although some of the docs had
to be adjusted to meet them.
This patch adds configuration to integrate with readthedocs.org, using
mkdocs as rendering engine.
It also does minor documentation updates, to tidy some things up
(clearer titles, move some documentation from the root into docs/, etc).