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

parent #90 
This seems kind of hacky... this won't really preserve the syntax that they initially had in their file, will it? Like it I started with an empty-ish file and after loading config I overwote it to have:
```ini
[newsection]
newkey=newvalue
```

And then save my config on top of it, won't I get something like this:
```ini
// some stuff from memory config
[]
newsection:newkey=newvalue
```