Implement test and fix for #8

* Implement test for setting back to default language.

  Applies to #8.

* Set values to the defaults before overriding.

  This covers an edge case that occurs when going from a language that
  has an overridden setting to a language that has a default setting.
  When the grammar changes, now we set everything to the default value
  first, then apply any overrides.

  Fixes #8
  Fixes #9

* Modularize and simplify the code.