Fix #4536 - store values correctly

Setting stores data using YAML but we have to call value= and default=
methods explicitly. Also this DRY-up new setting creation which can
occure on several places. If saving fails for whatever reason (maybe
some new validations in future) we now raise exception so we get error
before it's too late to fix)