first batch or refactor
moved related_model back to rel.to
second batch
refactored property in cached property
added a test case to enforce recursive reference between reverse and forward relations
Refactored reverse fields .model to point to model holding relation