Bug 335344 - External settings lost after changing language IDs, take 2

The original fix (a733900) only fixed part of the problem: It worked for
the case where a complete CExternalSetting was removed and replaced by a
different one, but not in the case where individual entries from a
CExternalSetting were moved to a different one, but others remained
(and, in both cases, the two CExternalSettings applied to the same
ICLanguageSetting).

This commit
- adds a test for the additional condition, which would previously fail
- reverts the previous fix, which is made redundant by the new one
- fixes both cases by applying removals before additions with
ICSettingEntry granularity per ICLanguageSetting rather than for whole
CExternalSettings.

Change-Id: I1b1ee7443b83189c29e458eef12be9cad6b3965d
Signed-off-by: Christian Walther <walther@indel.ch>
4 files changed