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
rose macro: centralise magic strings
Merge pull request #1163 from benfitzpatrick/rose-metadata.change-compulsory-option-meaning

rose metadata: do not require section for compulsory=true options