fix creating config objects from dicts

ensures that sections are subconfigs, and that:

```python
cfg = Config({'Class' : {'trait' : value}})
```

results in the same object as

```python
cfg = Config()
cfg.Class.trait = value
```