Add the ability to marshall nested properties

Hi, first of all, thanks for a great library.

This pull request adds a thing that I've wanted several times when marshalling a model that contains rich data structures on some of it's properties.

This allows for flattening out a nested object's value when marshalling it. It allows for keys like `foo.bar.baz` where the field will fetch the value for `baz` out of the `bar` object that is nested inside `foo`.

What do you guys think of this? Cheers!