fixes #2343 - override default settings with custom values

- added check for nil before attribute 'default' is loaded from yaml
- removed logic that tried to set 'value' attr to nil when it was equal to 'default';
  it didn't behave predictably as 'default' can be assigned after 'value'