* Replace C++ code examples in Python API docs
* Use newer Python for building docs
* Remove sphinx version pin
* Add Python versions of code examples
* Minor edit
* Add Python version of one more code example
* Proof of concept matching current behaviour with Breathe
* Reorganise C++ API docs to work without autosummary
* Revert to Sphinx-native search
* Move remaining pip deps to conda
* Remove unnecessary lunrsearch templates
* Remove lunrsearch from cmake
* Tidy up layout of API docs
* Get code blocks to work with Breathe
Breathe doesn't seem to support the Doxygen <preformatted> tag.
It does support the <code> tag, but better yet it supports using
<verbatim> tags to embed rst into docstrings. This commit changes
all <pre> tags to use RST verbatim, and updates the Python
documentation machinery to support it too.
* Clarified some language
* Have doxygen exclude undocumented classes and have sphinx fail on warnings for C++ API docs
* List custom forces and integrators last
* Add breathe to documentation CI
* Typo
* Fix link to custom forces in extras.rst
* Have Breathe process only public classes
* Strip OpenMM:: prefix from rst files to avoid colons in links
* Remove existing private classes from EXCLUDE_SYMBOLS
* Add comment to C++ cmake describing why we promote warnings to errors
* Revise documentation build instructions for new dependencies