Changes to enable validation for objects generated by InputFormatters.

UnitTests + FunctionalTests for the same.
Values will never come into picture if the enumeration is empty since the for loop will skip it. Unless we have a HUGE collection of value providers, the comment and L179-183