Replace the generated bash+jq rendering pipeline with a Python
implementation.
This avoids repeatedly parsing large JSON blobs during page rendering
and significantly reduces documentation build time.
Represent page content as a list of typed sections, rather than a fixed
set of page attributes.
This allows pages to be composed from multiple content sources while
simplifying the rendering logic and prepares the new docs system for
additional section types such as option documentation.
Move the mdbook menu rendering code into the module system and
generalise it to apply to multiple "categories" (mdbook parts) and
"types" of category (prefix, suffix, etc).
This commit only adds Home-Manager specific options, we should add
sections for the different kind of modules too.
This is _not_ added to the man docs, as it is more complex. If need
arises we could look into how to do it.