Detect circular references in dicts used to populate models

Raise a helpful error rather than allowing a nasty stack overflow.
Merge pull request #15 from gamechanger/tl-circular

Detect circular references in dicts used to populate models