Changes to enable validation for objects generated by InputFormatters.

UnitTests + FunctionalTests for the same.
In the case of an array, the validators list is always the same for all the elements in the array. In that case the validators list is passed in. Check ValidateElements function..