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.
Perhaps not, though all of the current (and previous) configuration keys have used dots as separators. There's nothing stopping them (the Kafka team that is) to add configuration keys that use underscore in the future, and then this would break (obviously).

The downside of using unmangled keys however, (besides from looking awful from a Ruby perspective ;)), is that it's not possible to use the dot notation for accessing attributes in Chef, i.e.

```ruby
node.default.kafka.broker.default.replication.factor = 3 
# ^ this will explode with a NoMethodError "undefined method `replication' for nil:NilClass"
```