Dynamic configuration attributes

This pull request is a first stab at what's been (somewhat) briefly discussed in #45, and is not a final solution as of right now, but more of a playground to see how it works.

It'll introduce quite some breaking changes, so I'd like to think it through thoroughly and make sure that there's tests for possible corner cases, etc, etc. But it feels like a pretty maintainable solution compared to what's currently in `master`. I do like me some comments in configuration files, but I can definitely live without them.

Let's see how this goes.
does this always hold?  and is it necessary?  why not just make the config dictionary use the unmangled keys?  so like { "auto.leader.rebalance.enable" => true }