Changes to enable validation for objects generated by InputFormatters.

UnitTests + FunctionalTests for the same.
when would this be the case ? 
The only case  i can think of when the visited flag would make sense would be if 
top level object reference is same as one of its properties. 
For body validation why is that interesting?