rose edit: speed-up by avoiding ConfigNode updates

This change speeds up rose edit's updating and error
checking by removing the constant re-setting of
ConfigNode objects. This is done because the macros
used for error checking (compulsory, value) and the
trigger macro all accept ConfigNode objects.

This change gives alternate interfaces for each of
those macros so that rose edit can re-use their
logic.

For a large configuration, this has sped up the
change-a-variable update time by more than a
factor of 4. ConfigNode updates are still done
for custom macro running, upgrading, and saving.

Additional changes:
 * the compulsory macro has been refactored to
 correctly detect missing compulsory options in all
 duplicate sections - previously, it was just finding
 the first duplicate section's options. Test the new
 app to see the difference in behaviour.
 * latent pages with compulsory errors will now
 correctly display them.