settings: cleanup of the XML definition syntax

These commits move around some tags to put them into their proper places (e.g. dependencies are not really part of the <control> definition whereas <heading> is only used in combination with the GUI control so it should be part of <control>). This does not change the behaviour of anything, just moves around some XML tags and their parsing.