Commit() outputs newly added keys in config source instead of throwing exception

parent #90 
This hacky logic is designed for the scenario where we have a config.ini file
```ini
[section]
key=val
```
and then we do
```c#
var config = new IniFileConfigurationSource("config.ini");
config.Load();
config.Set("newkey", "newval");
config.Commit();
```
Note that if we simply append the new key-value pair at the end, we get
```ini
[section]
key=val
newkey=newval
```
We add "newkey" into "section" but that's not the user's intention. So I use a empty section to disrupt the ongoing effect of previous section:
```ini
[section]
key=val
[]
newkey=newval
```