Moves all the "diagnostic descriptions" into "diagnostic groups". This
then allows some additional handling for:
1. Error when diagnostic files and their definition in
`DiagnosticGroups.def` don't match up
2. Error when a title is missing its group name
3. List of all groups with warnings