This introduces `constexpr` usages for compile-time constants in the
contributing guide, as apparently most people don't know it exists,
or that it doesn't have to be used with `const` most of the time.
This gives headings consistent link references that won't arbitrarily
change if the text representing it does, which makes for better
organization. This is also less error-prone when it comes to specifying
links in the presence of two headings with the same text content, but
under different sections.
This also treats each section and sub-section such that they all have
their own dividers.
This changes the guide to reflect the new formatting rules, and adds
instructions for using clang-format to automatically check and fix
most formatting issues.
Apparently new contributors were confused by the mix of tabs and spaces,
along with how they work out in practise - especially where one begins and
the other ends.
Fixes issue #9368