Allow derived settings to replace previously-defined but non-default settings

Following #1034. It remains to update all uses of `DerivedSetting` internally so that they still get created as `DefaultSetting`s, by doing so explicitly.