Changes to enable validation for objects generated by InputFormatters.

UnitTests + FunctionalTests for the same.
The deal here is not about re-validating the value, the function signature suggests that it should return true if the model is valid, here we return true even if the model was invalid. The discrepancy here is we are mixing traversal with validation.