Add converters for container types

TODO:

- [x] add a nested dictionary integration test
- [x] implement homogeneous list mapping with `@map_attr(all=<Converter>)`
- [x] add a nested list integration test
- [x] `to_data(obj)` should call `to_value(obj)`
- [x] convert dictionary/list when attribute is set
- [x] ensure plain `Dictionary` and `List` cannot be used
- [x] infer YAML arrays (lists) and objects (dicts) to use the `Object` converter
- [x] log a warning when attributes are inferred to use the `Object` converter