rose metadata: change option compulsory=true meaning.

This change alters the metadata specification to
allow compulsory options to be missing from a
configuration if and only if their parent section
is also missing.

The compulsory macro logic has been changed to
reflect this and as part of a general refactor
of that logic, which did not handle duplicate
section compulsory option addition properly in
rose edit mode, and which had the --fix bug
described in #1158.
rose edit: fix handling of compulsory latent duplicate sections
rose edit: restore duplicate sub-data pages
rose documentation: update metadata spec
Tidy ascertain project and fix a bug where it was matching the wrong thing
Merge remote branch 'origin/master' into rose-stem-robust-keyword-match
rose.conf optional configuration README
Add CLI output to the rose-rug-brief-tour script.
Bracket change requested by review.
Merge pull request #1165 from arjclark/improve_rug_output

training feedback: Add CLI output to the rose-rug-brief-tour script.
Update test-battery for new variable contents
rose edit: fix general checking for rose-suite.info suites
Merge pull request #1167 from benfitzpatrick/rose-edit.fix-check-save-no-config-dir

rose edit: fix general checking for rose-suite.info suites
rose macro: centralise magic strings
Update CHANGES.md
Merge pull request #1163 from benfitzpatrick/rose-metadata.change-compulsory-option-meaning

rose metadata: do not require section for compulsory=true options
Merge pull request #1168 from matthewrmshin/site-opt-example

rose.conf optional configuration README
Changes suggested by Ben
Implement Matt's suggest and improve docstrings
Fix missing variable initialisation