Previously, we were checking if `result[section_name].nil?`, but now we always call `with_section`, causing the `Conf#sections[section.name]` to be overwritten. So if you have:

<pre>
[main]
logdir=foo
[master]
[main]
parser=future
[agent]
logdir=bar
</pre>

The result will contain one section `main` with two settings:

<pre>
 result.sections[:main].settings.map(&:name)
=> [:logdir, :parser]
</pre>

But the reason this works is unexpected, see below