When looking at D8061, it appeared that the doxygen documentation
generation was broken. The template file use relative paths which are
invalid once run from the build directory as documented. This diff fixes
the doxygen generation in several ways:
- It moves the doxygen files to their own directory doc/doxygen
- It uses CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR to no longer rely on the callsite location
- It adds a gen-doxygen target to actually build the doc
- It updates the documentation accordingly
- It builds the docs on CI to check for regression