Simpler special case definition for ModelVisitors
Cleanup the generics
Add easy way of excluding relationships from visiting
Add wasy way of excluding models from visiting