Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before. Then revise the style:
* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`
Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`. This will aid
external infrastructure in knowing what version of the tool to run.
Versions of clang-format newer than 3.8 produce different output.
Our source code guide says that version 3.8 exactly must be used.
Update the comment in our `.clang-format` config file accordingly.
Add a check to our formatting script to verify the version.
Also update its tool search to look for the explicitly-named
3.8 variant first.
After discussion among developers we settled on the Mozilla style
with a few tweaks:
* Do not align operator arguments.
* Do not always break after a function return type.
* Limit to 79 columns instead of 80 to fit edge cases
better in 80-column terminals as CMake has always done.
* Format for C++98 instead of C++11 because CMake is written
in the former language.
Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>